Adventures in the Twilight Years of RSS

Finding a replacement for Google Reader, seven years on

“Something to consider: somewhere out there is a person who worked at Google in 2013 who greenlit killing Google Reader.

“Every day, in the back of their mind, they dread the internet finding out who they are, and they’ll have that dread for the rest of their life.”

@QuinnyPig, 6 March 2020, retweeted by @KilledByGoogle

“I smell death on the horizon.”

@KilledByGoogle, 6 March 2020

Like millions of people I was thrown by the unexpected closing of Google Reader in mid 2013, and I had to find a new home for all my feeds. The announcement was made in the middle of a “spring cleaning” post published on their official blog (also since discontinued) seven years ago next week, citing a decline in usage.

Google does this all the time, and while the long list of casualties is dominated by apps, frameworks, and websites you’ve probably never heard of, they also have a track record of annoying loyal fans with inexplicable decisions. I won’t re-litigate the whole thing, but like most people I too am unwilling to call Google’s decision to abandon such high quality data about reading habits and preferences a good idea even by their own measures. I wager even had Google+, Google’s contemporaneous attempt at a social network to rival facebook and twitter, succeeded it would still have had been less useful for the kind of ad algorithms that is the company’s true revenue source.

If my memory serves my initial port of call in those months between the announcement and the service’s termination was The Old Reader, a clone of Google Reader founded some time earlier to restore a set of social features I had never noticed had been removed (the ability to curate posts in-app rather than on an external service is actually a really good feature, but I didn’t have anyone else to share with). It quickly became apparent that—quite understandably—the developers were being overwhelmed by the wave of new users. Despite their troubles I never found the site unusably slow, but once I understood how stressed the devs themselves had become I had to look for somewhere new.

Feedly seems to have originally been using Google Reader as a backend, but was already working on its own. I moved there next but found the interface more sparse and magazine-like than I was used to, and while there were ways to improve it I found my use tapering off over the following years.

I tried a few others since including newsbeuter (now newsboat), a Linux terminal application that works surprisingly well—though as you would expect suffers on the displaying images front among others. For a long time this application actually remained my primary way of downloading podcasts, as it has a companion tool for this purpose capable of keeping track of downloads and neatly sorting the files into their correct folders.

The tool I used for most of the past seven years though was calibre recipies, a complicated process that I quickly gave up on explaining to people. Basically, the ebook management software Calibre (in both GUI and command-line form, using the ebook-convert tool) is capable of taking a list of RSS or atom feeds presented as part of a Python class and turning them into an ebook that can then be sent to an ereader like the Kindle I received as a birthday present in late 2015. These files would look something like the following:

class AdvancedUserRecipe(BasicNewsRecipe):
    title          = u'Blogs'
    oldest_article = 4 # Measured in days
    max_articles_per_feed = 15
    auto_cleanup = True

    feeds     = [
                (u'Petra\'s Space', u'https://petras.space/index.xml'),
                (u'R-Bloggers', u'https://feeds.feedburner.com/RBloggers')
                ]

If you’re more comfortable with python there’s a lot you can do here to process feeds to make them more readable, but if you aren’t you can still make a surprisingly reasonable e-newspaper just by adding more title-url tuples to the list. Some sites did fail to load or would work only partially, and of course all images on my kindle were in black and white, but this still lasted me four years of catching up on blogs on the train in the morning.

Alas, late last year my kindle decided that connecting to wifi was for chumps. Investigation suggested that the problem wasn’t with the device at all but most likely with its attempt to phone home to amazon servers after reaching the open internet, and in fact whatever the problem was has been fixed, but it was again time for a change. I first returned to Feedly, which I found I liked better than I had back in the day but which limited me to 100 feeds without paying (the horror! Actually my real issue was that even if I signed up for Pro a cap would still exist, which could be increased by paying more but never eliminated. I understand where this is coming from, but it’s not my style). With personal projects I have the kind of mentality that in other fields causes people to spend three years of weekends DIYing their own house which could have been done much less stressfully by professionals in a fraction of the time, and so looked up self-hosted web options.

The first I found was a tool called “Tiny Tiny RSS.” This was nice for a few days, but the program came pre-installed with the rss feed for the project forum and I quickly discovered from watching other users’ experiences that this was not a terribly nice place. Subsequent investigation quickly suggested reasons how this might have come about; the less said here the better, I think.

Screenshot of FreshRSS in action

Instead at the end of December 2019 I moved to FreshRSS. After some setup, and an embarrassing mistake in my nginx config that left it inaccessible via ipv4, I’ve found it pretty great! Here’s a couple of other notes if you’re interested in doing the same:

  • Setup requires configuring php, which is not something I’ve previously had experience with. The biggest issue I had was that the unix socket file I was using to connect php-fpm to nginx had the wrong permissions; the error message that came up for this was not clear let me tell you, but this isn’t FreshRSS’s fault.
  • Tools like this have the ability to refresh (or “actualize”) feeds from the web client, but if you want them to do this automatically behind the scenes you will have to set up a cron job or systemd service, which I struggled with for a while. In the end my crontab entry looked something like:
25,55 * * * * php /usr/share/nginx/FreshRSS/app/actualize_script.php > /usr/share/nginx/FreshRSS/app/actualise.log 2>&
  • I’ve been told that when you add services for sharing their passwords are stored in the database as plaintext. I don’t use those services myself so it doesn’t matter to me, but that’s certainly sub-optimal
  • Look through the themes the come pre-installed. There isn’t an infinite variety, but I think there are a few good ones in there
  • FreshRSS doesn’t download full text articles from truncated feeds by default, but does have an option to scrape part of the html with a CSS specifier (often .entry-content does the trick). I’d like it to be more flexible than that, but it does work
  • The main (android) app I’ve been using with it is EasyRSS, which can be found on F-Droid. This uses FreshRSS’s “Google Reader API” (something which seems to exist but isn’t terribly well documented anywhere on the internet), and unfortunately requires you to type the full https://<domain>/api/greader.php url on your phone as part of setup to find said API. The other app I’ve been playing with is called Readably, which is available free (though with more features if you pay) on google play; this app uses the Fever api and needs you to similarly input https://<domain>/api/fever.php
  • To get any apps working at all you need to enable the apis in settings and also set a special api password for the user. This has some advantages but unfortunately the interface is unwilling to tell you what this password was if you forget it—once set it vanishes into the ether, but can be overwritten with something new

Overall though I’m really enjoying this tool. It’s so nice to have my feed reading under my own control in this way, and I’ve learned a huge amount in the process.

To be clear reading feeds is addicting in a very similar way that browsing twitter is, but I don’t think it has such negative consequences. For one thing you learn a lot more in the same amount of time; for another you can leave blogposts for another day much more easily than tweets. I won’t say that the demise of Google Reader created “fake news,” not least because the roots of that lie vastly deeper than its recent coinage, but RSS represents a way of using the internet that we’ve largely lost—and maybe should not have.

RSS is dying and has been so since at least 2013, but take heart: that doesn’t mean it will actually, finally, die. Long may it linger in this perpetual twilight.