Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Hacker News desktop app made with Electron and Node (github.com/jingweno)
167 points by jingweno on Sept 16, 2015 | hide | past | favorite | 73 comments



I don't care how massive the app is compared to just web browsing...it's always great when people show off not just the product, but the open source code. Thanks!


Glad you like we open source it :)


Not particularly directed at OP, I haven't tried or even downloaded the app. But am I the only one that when I see 'Node' and 'Desktop' in a headline immediately think 'this may be really nice but it is just gonna be to big for what it does'? And, as a followup, what is the appeal of using Node for desktop dev?


You are not the only one. But not because of Node (which is not that big) but because of Electron.

That said, the big issue is that we don't (yet) get to share Electron installs. If all desktop applications had to bundle all their dependencies, including what the OS already provides to them, they would be just as big.

Electron apps themselves aren't that big. Even Atom.


Electron really should be treated like `node` and be a dependency. Of course you could still package your apps with Electron, and you can do that with node too (if you wanted to), still nobody distributes node applications like that.

Actually, I tried fixing that problem with `asv`: https://news.ycombinator.com/item?id=10244073


You get to use a similar kit that you're already using for webdev.

For example, the only time I've maintained a proficiency in both a webdev stack and a native kit was when I was paid to work on both full-time.

Node's main appeal to me is a similar consolidation: using one language. At least until I find out I'm immortal.


The advantages would include shared tooling, a cross-platform GUI, and the ability for end-users to modify the code.

Regarding size, it appears to be around 100 MB, so you could have 20971 separate installations of it before filling up a 2 TB drive.

Memory usage could be an issue, but whether that matters will depend on your audience the app. In this case, the aim is toward HN, so it doesn't seem like an issue.


While I hope flash drives will come down in price, who has a 2TB flash drive right now? My entire desktop OS, with at least three web browsers, multiple sdks/compilers etc take up a grand total of 15GB. Granted, that'd still leave room for 150 "apps" in the same space (note that I actually only have 3GB free, though). Still, 100 MB for what is essentially high-level code? It's absurd.

[ed: Not directed at op, as such, just how silly the general node ecosystem is currently]


On the flip side, that's 10 full installations of Doom, which is my standard measure of software size.


Smaller apps would probably benefit from an electron-like system that just uses the inbuilt system browser. I'm not aware of any such projects, though.


I really like it, runs well under openSUSE (you have to download the repo and follow the instructions under "Development" in the readme). Hope to see it's functionality expand further.

Edit:

One thing I would change is maybe make the overall border a more noticeable darker color, I keep getting confused as to where the borders are for when resizing it, and maybe a way of dragging and dropping the window (that is more obvious if it is there, I haven't figured out how to move the window without using what I assume to be KDE specific features).


Thanks giancarlostoro. That is great feedback. Let's gather more responses from others, and we will make the change. We want this to be super easy to you to use.


btw, I am glad it works well for you under openSUSE. You have made a excellent example for others to start using it, w/o waiting for a build for a specific platform. We will get there. We are working a build for Windows version.


This tool reminds me of a feature in the Vivaldi browser called Web Panels:

https://vivaldi.net/en-US/blogs/teamblog/item/50-snapshot-1-...

You can have a sidebar in your browser with it's own webpage displayed, so you can have Hacker News open no matter what tab you're viewing.


And the sidebar extension for Opera for Hacker News (using Dharmesh Patel's app) https://addons.opera.com/en/extensions/details/hackernews-si...


Looks cool. But... 100+Mb for a notification app?


That's Node (V8) and Electron (Chromium and all its dependencies) for you.


Maybe, just maybe, we should just bundle Node and Electron into a package, install that as a shared library (similar to the way .NET and Java are installed) and then just ship, in the installer, a tool that downloads those if not already installed?

Would save a lot of memory and time for everyone.


Electron is moving pretty quickly (and breaking APIs) at this point so you'd end up with just as many versions of the shared library as you would copies in applications.


Breaking APIs is not generally good either.

But if a single newsreader contains more code than a full PlayStation game, you know something’s wrong.

This is just Wirth’s Law in action.


The very fact that we 'do not break APIs' is one of the reasons that this newsreader is 100+ MB. If Google Chrome wasn't 4,490,488 lines of code designed across years of development to, well, _support old web APIs_ -- then it would likely be much smaller. :)


Well, and, as the parent said, even with this you still can’t use the same version of the library even for a few months. That’s the worst out of both worlds.


How is it 100 MB? RAM or disk space?


After checking RAM usage, I'd say both.


256MiB RSS when active, hahaha. Chrome isn't memory efficient, but this takes the cake.


Disk space


Yeah, unfortunately the app bundled with a Chrome. But, the upside is it's implemented in HTML/CSS/JavaScript and it's hackable :)


Did you consider making a simple Chrome app of this?


Perhaps, that will come. We need to learn more about how people use it, and get more feedbacks.


> Download the latest build for your platform from releases.

Cool !!

Oh.. Mac only right now.


there is some irony here... by saying this and then "We are working on Windows and Linux versions. " is not exactly fair. The entire purpose of electron is to "Build cross platform desktop apps with web technologies" so by stating that and failing to release other platforms is quite silly


We're working on the Windows and Linux builds. Or if you can't wait, just clone the repo and run `npm start`: https://github.com/jingweno/hacker-menu#development


(Be sure to run npm install first.)


And install node... which I don't use...


That's a pretty cool idea... but do people really want more HN? My impression is that most people want to read it once or twice a day, but are driven to it more often than that as attempts at procrastination. So this seems like it'd be a net loss for most users.


That's exactly the idea of Hacker Menu. You could check the news anytime by just clicking it, but it's not distracting


But it's tempting. My hypothesis is that it's too tempting.


You should watch for the menu icon to change to dark color then :). Thanks for sharing your thoughts. btw


Sure thing :)


From: https://hackermenu.io/ "Do you have the habit of jumping to comments before reading an article? We got you covered. Comment is just one click away. So is vote."

I did a quick browse and search of the source on github for "comment", "vote" and "login". How do you handle logging in/submitting comments/votes? Just present the regular hn login inside the app, and use the hn site?

I thought there was some TOS/gentlman's agreement that APIs only had read access to stories, and one needed/should use the hn page for comments/votes? Perhaps I'm mistaken?

I suppose there's no rule against making a custom browser though -- while a bit heavy handed, I suppose there's really no difference between wrapping node+electron and enhancing the UI/UX with greasmonkey -- I suppose the main issue is to behave closely enough to a regular web visitor, so as not to put undue strain on the service, not demand that every visitor actually uses a general purpose browser...?


Just downloaded! I love it. The only thing I was going to say was I wish it had the ability to resize the window and save the size for each time it opened...then I realized you were one step ahead of me and had done exactly that! Very impressive, and a fantastic example of React and Electron. I'm definitely bookmarking this to come back and learn from the codebase later.


Looks great - in all honesty I probably won't use it day to day as I waste enough time checking HN, although perhaps it would be a less distracting way to check it. Source code looks nice and clean, look forward to digging into it!


Because I need to get less work done? It does look great.


Haha. I find myself keep watching the menu bar for updates, then click on the news item. Glad you think it looks good. Feedbacks are welcomed.


In case it's helpful,

  hacker-menu$ node install
  module.js:338
      throw err;
            ^
  Error: Cannot find module 'hacker-menu/install'
      at Function.Module._resolveFilename (module.js:336:15)
      at Function.Module._load (module.js:278:25)
      at Function.Module.runMain (module.js:501:10)
      at startup (node.js:129:16)
      at node.js:814:3


    > node install
It's `npm install`


Ah, the bug was between the ears. Thanks.

The app seems pretty nice. I wonder why people are saying harsh things?


Great app. Would be cool if it could be installed via homebrew and use an existing node installation.

Anyway, keep up the good work ;)


Can the non-Mac users have some screenshots? I dug around the GitHub repo and the website, but didn't see any.


Here you go:

1- http://i.imgur.com/5WjIJ5M.png

2- http://i.imgur.com/A1VHspL.png

This is about it. When you click on any link, it takes you to the website itself.


See https://hackermenu.io/ their homepage has a screenshot, looks just like that on openSUSE for me.


Well done on making this, but I have to say that I'm sure I'm not the only person that's not interested in installing node on their desktop.


I have installed this and I agree with other users here - I like it. I can check it whenever I want to and it's non obtrusive.


Thanks! I'd like to dismiss and/or mark as read for stories I'm not interested in.


Thanks for sharing your thought. We talked about this and are going to implement it.


This is really great. I like that it remembers read stories, even across sessions.


Can you add the 'save to pocket' as well, that would great.


Ugh provide high quality screenshots, both on project readme in github and on the website as well.

Currently the website has skewed image of the thing and then cropped round images of the thing.


Ugh, quit complaining and put in a pull request. It's open source and a side-project, after all.


I would bet that my newsreader uses booth less RAM and less disk space. This is what feeds were invented for. Why should I install that much bloat just for reading HN?


Well, afaik you'd have to proxy HN somehow in order to get an RSS feed to feed to your rss reader?

I personally think that proxying by installing a 100 mb runtime just to be able to change some styles and change around some of the UX with custom javascript is a bit silly, but others here seem to like it, so who am I to judge?


You must be a lot of fun at parties.


Why should you? Okay, don't.

If OP gave you free beer would you spit it out over him and say it's too bitter?


That's a pretty bad metaphor. I am refusing OP's free beer, because I don't drink beer. I also question the need of giving away free alcohol. Instead, I take the free glass of water from the next guy.


Okay, so you don't drink beer.

    > "No thanks, I don't drink beer - cheers for the offer though!"


I say take the beer and chill man. No need for the -ve vibe. Cheers


You should hit me up sometime. I'd love to party with you. /s


Come on guys, this isn't Reddit so lets keep the commentary constructive. I feel rtz12 has some valid points - although his/her language style contains emotion you can't presume to know why that is without being that person.


Is it really a good, constructive point, though? Boo hoo, too big? Having to make concessions drools?

The cutting edge of building xplat desktop apps with browser tech involves independently bundling Node and Chromium, so it's gonna weigh 100+mb like a single Chrome browser tab. That's life.

Yes, we all have different appetites for different sets of trade-offs.


This looks interesting but the first thing I noticed was that the 'H' in your logo isn't centred and it hurts my brain.



You have eagle eyes :D


nice.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: