Google Reader Reimagined

Monday, March 21, 2011

TL;DR: I have built a small utility service for Google Reader where you can define the topics you love and then let the system group and prioritize the stories for you. You can test it here or fork it at Github.

So this weekend I had an idea: I was going to build a small utility as an weekend project, in order to help me deal with my daily information overload issue, also known as "Google Reader".

I rely heavily on Google Reader and my 335 subscriptions give me a headache every time I wanna keep up with the world, so I had to do something.

There were to major problems that I wanted to tackle with Google Reader: First up, I wanted the "interesting" stories, more precisely some topics that I am interested in (javascript, ios, html5, diablo), to come up first and stop being buried under the whole pile of boring articles. Secondly, due to the volume of my subscriptions, some stories were mentioned over one time by multiple sources, so it would have been nice if those stories were grouped and being pushed up to the top, right after my 'interesting' articles. In that way, developing stories of the day (e.g. AT&T buys T-Mobile) could bubble up easily.

So that's what I coded over the past two days.

First up, some technology heads up: I used the excellent HTML 5 Boilerplate "framework" by Paul Irish, in order not mess around with CSS too much. I have found myself fiddling with CSS many times, where I really had to focus on the development side of things, so boilerplate made things a lot faster. I also didn't wanna mess around with databases in this small project, so I used Local Storage. Everything that has to be saved (no username/passwords of course) is saved on the client using HTML 5 Local Storage feature, so no db, no tables, no transactions, nothing. Also jQuery rocks, but I guess you know that already!

The "backend", although trivial, was a bit trickier. Dealing with the fact that Google Reader hasn't released an official API yet, I had to rely on a pretty useful wiki and some Stack Overflow posts when dealing with the whole request/response game, which proved to be quite fun!

The real heart of the system though is the algorithm which takes care of all the rest and yeah it's no rocket science either.

Once you login to the service with your Google Reader credentials, you get to enter some topics that you love (1 word per topic at the moment). For example in my case those are: blizzard, wow, ipad, iphone, ios, apple, javascript, html5, css3, warcraft, diablo, webgl, nodejs. The system then scans through your unread items of your reading list, breaks up every title of those items into terms and groups the items with the common terms. It excludes some unnecessary words (mostly verbs) and then groups the terms that have the same items together. It finally breaks up this list into two: one with your "interesting" stories and one with the rest. And that's pretty much it!

You can test Google Reader Reimagined here but bear in mind that this project was made by me, in order to work for me. I don't know if it can help you with your reading list and no, there is no feature request button. I plan to add some things in the future but those will primarily tend to serve my needs.

On the other hand, I plan to push the source of this project to my Github page this week (hopefully), so anybody can fork, tweak, download and mess around with it!

Update: You can now find the code of the project @ Github!