Go read: fast Google Reader clone in AngularJS with Go on App Engine
mattjibson.com
mattjibson.com
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.
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.
I also imagine it's because google was requesting the feeds more often than others, or leveraging the feedburner system to know when they were updated and other such things.
It handles all the "dirty" parts of feed reading (checking for new items, normalizing fields) and adds near instant updates for sites that ping hubs.
When I finally get around to writing my own feed reader, I definitely plan on using it.
I wonder how hard this would be to get it implemented in some of the other readers.
http://googlereader.blogspot.com/2005/12/xml-errors-in-feeds...
That is to say, I completely agree with you. Google Reader had an excellent backend (being used by 90%+ of people meant there was a virtuous cycle happening), and I especially noticed this when I developed a prototype backend that I never actually used. Deciding how frequently to check feeds is complicated.
In the end, given that this is a side project, I'm never going to be able to compete with the big players, especially at scale, and to be frank, I don't find this side of it as interesting or enjoyable to develop.
The good news is that this frontend could be modified to work with another backend if there was a good reason to do so.
Also, it is possible to view the feed for a single source: clicking on a feed label in the subscriptions list shows just the items from that feed. If you have folders (like there are on the "try" page), clicking on the folder label shows items from all feeds inside the folder, but clicking on the folder icon expands the folder.
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.
The single most annoying part of switching solutions has always been modifications to my interactions, more so than any glitz. I think my defence against worrying about what different icons did/meant was just learning how to type what I wanted. Sorta sad it took me as long as it did to get to that level of using the computer. (I initially rejected vim/emacs because of how difficult they felt...)
Reader and gmail had hit a sweet spot of playing off my muscle memory rather well. To the point that I honestly forget about all of the extra graphical stuff they add around what I'm focusing on.
Anyway... feels like I should give this area a run. I think I agree with you regarding the backend stuff. I would probably just sit on top of gwene.org. But regardless of the source, making your own backend seems... unnecessary.
I should have mentioned that I've also released the source code: https://github.com/davidjohnstone/alt
facepalm
Did you have any difficulties there?
I thought we couldn't run routines in parellel yet. Per:
'The Go runtime environment for App Engine provides full support for goroutines, but not for parallel execution: goroutines are scheduled onto a single operating system thread. This single-thread restriction may be lifted in future versions. Multiple requests may be handled concurrently by a given instance.' [1]
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.
I don't, I have too many logins already. What are you basing this on, or is it just your gut feeling?
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 ?
One feature I miss from Google Reader is the ability to hide feeds that have no unread items from the sidebar completely.
Anotherwish of mine would be to not set a font size. It's all a bit too small for me. Sure, I can set a user-style, but it's easier if the site behaves right by itself.
One other thing: In the list of entries, the missing footer below an article is a bit irritating right now. Maybe it is just new, but I think it might be helpful to add a margin-bottom to .story-content.
Good work though, it is indeed fast.
Where do I give you all my money?
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!
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.
You can see the actual dependencies used by hitting godoc.org:
Are you using the Go App Engine SDK? Then you just run dev_appserver.py $DIR and it runs.
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).
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.
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.
* 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! :)
Thank you for going OSS with this project!
"go get" is not supported in appengine [1], and if I manually check out individual projects, I end up with extra code that will not compile in the appengine environment.
[1] https://groups.google.com/d/msg/golang-nuts/8BJ0fxrWZd4/PXyI...
go get -d <package>
I also had a problem getting the app to upload: "appcfg.py update" would hang during the build phase (may be Windows-specific): https://code.google.com/p/googleappengine/issues/detail?id=9...
I think you nailed it there. I don't really care about the site presentation, just the content. It's interesting when the content that I'm reading in my feed reader mentions the "new design... working out the quirks" which obviously doesn't translate to the version that is on the reader.
I'm also lazy though... and often can't be bothered to even click on the "read more" when only the brief summary is contained in the syndicated version.
That said, most of my feeds use bland or generic themes. I really just care about their content.
Feedly is also collapsing sidebar to early, this is a small thing, but causes a great deal of disruption in such use case.
For a much smaller company on the other hand it might actually be a lot of money.
It's Innovators dilemma kind of mutated.
Is there any way to categorize new feeds? It imported my previous categories/folders just fine, but I don't see any to move new feeds to categories/folders.
However, it seems down right now. Just getting "loading..." Anyone else?
Ha! Is that really not in the spec for Atom/RSS/RDF?