top | item 5953140

Go read: fast Google Reader clone in AngularJS with Go on App Engine

279 points| mjibson | 12 years ago |mattjibson.com

119 comments

order
[+] davidjohnstone|12 years ago|reply
The funny thing about feed readers is that we actually only care about the UI, not the underlying feed fetching and parsing and whatever else happens on the server.

So, when I made my feed reader — this has got to be the most popular pastime of the last few months around here — I ended up taking the lazy approach and made a UI that sat on top of the NewsBlur API. Thus, I now have a NewsBlur account, all the messy date parsing and everything else gets done on NewsBlur's servers, and I access it through my own much prettier interface that works just how I want it to work (http://www.altfeedreader.com). For anybody still thinking about making a feed reader, I definitely recommend this approach.

[+] bonaldi|12 years ago|reply
It's not really funny — because when you actually do care about the underlying feed parsing, you end up searching in vain for a replacement among readers that are, as you say, lazy prettification on top of bad fetch/parse engines.

Google Reader had become amazing at getting updates virtually as soon as they were published. I've been comparing how well the competitors do, and some of them are more than 30 minutes later than Reader at finding and showing stories.

[+] j_s|12 years ago|reply
Looks nice! On your landing page I'd recommend auto-cycling through the features on a slow timer until mouse-over.
[+] taeric|12 years ago|reply
Not sure how true the UI concern is. I finally got around to setting up emacs to fetch rss stuff through gwene.org. I suppose I'll miss the social aspect of reader, but I'm not sure.

Now... what I do like is having something that is very very easy to control with a keyboard. Even better, it plays well with muscle memory that I've already been building up. So... if that is included in the UI department, I guess I'm ultimately agreeing.

[+] jacoblyles|12 years ago|reply
That's actually brilliant. I've been waiting for someone to come out with a UI like this.
[+] tta|12 years ago|reply
Love the way this looks. Do you have any support for keyboard shortcuts?
[+] barista|12 years ago|reply
Looks nice a few bugs when trying out with IE 10 though. Filters at the top don't work. Also a way to scope down to only a single RSS source would be nice.
[+] arms|12 years ago|reply
Thank you for open sourcing this. I've been itching to dive into some production ready Go code, and I've got a lot of interest in Angular.
[+] drhayes9|12 years ago|reply
I second this. I'm especially interested in how other people model their data for App Engine's store.

Did you have any difficulties there?

[+] webwanderings|12 years ago|reply
Looks good and simple. But I am still sticking with InoReader. Even though Feed readers should be simple but they should still provide enough bells and whistles for the people to adjust settings (look and feel) according to their own taste and not the taste of the developer. Below I see a comment which suggest that you only prefer to use Google to sign in. Well, most people won't agree and they'd rather you provide your own sign on system. In any case, the same logic works for UI adjustments etc. For all these reasons, InoReader by far is the closest you can get to Google Reader replacement.

PS: I have only recently discovered InoReader and I have no stake in it but I have been playing with many RSS readers as I am a long time RSS user of GR.

[+] jdewald|12 years ago|reply
Login-wise I feel exact opposite... I became quickly annoyed when I need to create yet another login. I prefer seeing "Login with Google"
[+] anigbrowl|12 years ago|reply
most people won't agree and they'd rather you provide your own sign on system

I don't, I have too many logins already. What are you basing this on, or is it just your gut feeling?

[+] vmialik|12 years ago|reply
Another vote for Inoreader, its the closest usable interface to Google Reader IMHO, and I am satisfied at this point for image feed viewing and text/blog feeds etc. Really user friendly interface.
[+] webwanderings|12 years ago|reply
I don't care about downvotes but I can't honestly provide feedback as a user without comparing your products with other products.
[+] bsaul|12 years ago|reply
Not a Google Reader user (i used iGoogle until they discontinued it on smartphones...), but it's really a great site, congrats. I'll probably go get a look at the source since i'm an angular and app engine user (and not really serious with go...yet).

One small question : is there a reason why you need to go to the top right menu to add a new stream, instead of just a "+" at the bottom of the left pane list of feed ? Is that what google reader required ?

[+] mjibson|12 years ago|reply
You can just press 'a'. And it's because I didn't have enough time to make it better, and that's the first place it went.
[+] mtgx|12 years ago|reply
I actually like it, even though it seems to have fewer bells and whistles than Feedly, but I think it's even a bit faster, which is surprising, since most of the others readers I've tried have been slower than feedly.
[+] liyanage|12 years ago|reply
I tried it, looks nice and works well.

One feature I miss from Google Reader is the ability to hide feeds that have no unread items from the sidebar completely.

[+] alex_doom|12 years ago|reply
Christ on a cracker. This is exactly what I've been hoping someone would make. Loaded all my feeds, without crashing. Keyboard shortcuts and working folders. And everything happens when you click on it, not 3 seconds later.

Where do I give you all my money?

[+] mseepgood|12 years ago|reply
Wow, this is great! Login with Google account, import data from Google Reader worked seamlessly, clean UI. Thanks!
[+] tracker1|12 years ago|reply
Agreed, my only nit to pick is I can't seem to re-view old/read articles.
[+] xbpx|12 years ago|reply
Good work on the UI - it has that clean responsive feel I really enjoyed about Google Reader. It took about 90 seconds for my 200 or so feeds to transfer from Goog. This is during the period this article is trending on HN - that is about an hour faster than Feedly managed when it was under load.

I just logged in with my two year old Samsung Nexus and it ground to a halt and took down Chrome. Hopefully the mobile experience is given a high priority - more and more of my feed consumption is doen mobile.

Overall Great work!

[+] mjibson|12 years ago|reply
Thanks. I'm glad it's scaling - that was one of the goals. Yes, a high number of stories will perform poorly. Doing infinite scroll like google reader does is on my todo list, which will fix those problems.
[+] ElGalambo|12 years ago|reply
First impression: Excellent. I see you got some inspiration from a certain Userscript and I applaud you for your choice. You managed to save lots of whitespace.

I have only one criticism with the UI. You removed the toolbar normally found in the end of each feed item. This is aesthetically pleasing but it introduces a couple of usability issues: 1) I sometimes accidentally click on an item and want to keep it unread, but the 'Mark as Unread' button is unavailable. 2) In full view, the only separator between feed items is a thin grey line. Please make it thicker and darker.

I have noticed a problem with all Readers that I hope you could address. Some XML's only show the latest item. If the reader doesn't update quickly enough, it would miss some items. I would appreciate it if you somehow made your reader update these problematic feeds more often.

Edit: When I click on an item to mark it as read, the only indication my click registered is that the unread count becomes reduced by one. Please show more prominent indication that the item is read.

[+] xbpx|12 years ago|reply
If Reader parity is the goal then there seems to be a feature bug. Audio feeds like the New Yorker Comment Podcast and Science Magazine Podcast do not have audio elements in the feed. Though clicking on the title does bring up a download dialogue for the media file. Is this a feature that will be implemented in the near future? G-Reader was a great podcast tool.
[+] swdunlop|12 years ago|reply
Very nice.. I've wanted a nontrivial example of a Go webapp -- the ones I write are strictly JSON API's that lurk behind our presentation UI.

You can see the actual dependencies used by hitting godoc.org:

http://godoc.org/github.com/mjibson/goread/goapp?imports

[+] bdonlan|12 years ago|reply
Actually building and running the thing, though, seems to be quite tricky - app engine forbids importing syscall, but half of the dependencies of this app seem to import syscall.
[+] 6cxs2hd6|12 years ago|reply
Clean, fast. I like.

But I miss some shortcut keys. Especially SHIFT+J and +K to navigate among feeds. (Bonus points if you do it the GReader way -- keep moving the highlight among feeds until J or K is released, and only then refresh to show that last one as the new feed).

[+] stevewilber|12 years ago|reply
This is perfect. It was incredibly easy to move over from Google Reader.

If you decide to run some simple ads, I would be happy to pay for an ad-free version. I'd say this has potential to do a lot more than just pay for itself.

[+] mseepgood|12 years ago|reply
I would like to have a marker on the left pane to see which feed is selected.
[+] human_error|12 years ago|reply
Is this how Google Reader used to look like? I'm asking this because UI is very similar to CommaFeed (https://www.commafeed.com/)
[+] mjibson|12 years ago|reply
Wow. I've never seen that. It does look uncannily familiar. Bootstrap will do that.
[+] xweb|12 years ago|reply
Love it! Signed up immediately, imported my Google Reader no problem, and so far very quick in use. I've tried a couple others over the last few months but this is, by far, my favorite. Bookmarked.
[+] errnoh|12 years ago|reply
Thank you.

I've tried bunch of possible candidates to replace Reader and this is the first one that actually feels responsive enough for daily use.

And the fact that it's open source and written in Go is just icing on the cake.

[+] mrcasual|12 years ago|reply
Fast and simple, which is good, but it took me less than a minute to look at it and move on. Some of the key reasons:

* Impossible to reorder feeds on the fly just like in Google Reader. That's the #1 must-have feature for me.

* Inability to tag/label stories AND feeds.

* No integration with Instapaper and sharing services.

* Inability to star/like stories.

I couldn't care less about shortcuts and responsive design. Google made it easy to organize feeds and share/archive/search stories. That's what others have been unable to replicate so far.

Good luck! :)

[+] codereflection|12 years ago|reply
Looking through your commit history, looks like you've been working very hard on Go read since you started in March. It looks and feels fantastic.

Thank you for going OSS with this project!