It's only been relatively recently that I got into using an RSS reader to gather up articles, previously spending my time scrolling endlessly through social media or reddit (although frankly I'm not sure that isn't social media too.) I'd like to quickly say that I heartily recommend setting up an RSS reader as a means of collecting reading material, and that these troubles are not with the RSS reader, but with the hubris of myself and a complete hack "fix" that "seemed to work just fine."
The Clouds Gather
To set the scene, I was bouncing around RSS readers at first to find the one that was right for me. In the end, I settled on NewsFlash, a GTK based RSS reader which has options for a few backends. I was feeling simple, and so used Local RSS, which uses an sqlite database to hold the application, feed and article data.
Delighted with my choice, I carried on with normal usage for a few months, before becoming desirous of replicating the data across to other devices, so I could read on either and my list of unread articles would automatically update. This is where I sowed the seed for my own destruction.
For unrelated reasons, I had also recently set up Syncthing on both these devices, and so I wrought my pain by "just temporarily using syncthing to copy the databases across." Now, anyone with a smidgen of common sense can see that on this road lies inconsistency, doubt and tears. Alas, I did not have common sense, and this "temporary solution while I found something better" was left in place until I forgot about it.
The Clouds Burst
Months passed, and I felt very pleased with the system I'd set up for myself, enjoying the routine of reading through my new articles in the morning with a cup of tea. Until, when chance came, a crisis arose. I'd added and deleted a few feeds, and then the sync happened. The sync failed, and fatally corrupted the database in both locations. All articles I'd saved, and more importantly, the couple dozen feeds I'd never be able to remember were all lost.
A Lesson is Learned
Rather than attempt to fix this obviously broken nightmare, I opted to find a more long term solution. The astute reader will already have realised I should be using a web based aggregator which NewsFlash can consume, rather than hamfistedly slamming two things together in a desperate hope it'll work. This time I actually thought about my requirements, and chose a suitable tool.
My requirements were:
- Open source
- Accessible from anywhere
- Integrates with NewsFlash
This last requirement really helped, as it massively reduced the shortlist. NewsFlash (at the time of writing) supports Local RSS (we already saw how that went), miniflux, feedly, feedbin and fever. Of these, feedly and fever were right out as I couldn't self host them, leaving miniflux and feedbin.
At first I was drawn in by Feedbin's sleek UI and website, as well as its support for mailing lists. "Finally," I thought, "I don't need to manage mailing lists in email anymore!" However, when I started looking at deploying it, I realised that without paying a lot more for a VPS this was untenable, as it was very heavyweight. Those of you keeping score will now realise my eventual choice - miniflux.
Deploying was a dream, there was already a docker-compose in the docs, and so I simply copied that into my existing VPS. It works beautifully, and actually solves the problem I wanted to solve hackily in the first place. I've actually found myself using the web UI much more than NewsFlash to consume the content, as the import loses chronological ordering, which is less than ideal, but I don't mind this so much.
I guess the moral of this story is think about what you actually need before whacking together a hack solution, and don't rely on that hack solution until it breaks on you. You may end up spending a good part of your day refinding all of your RSS feeds and entering them into a new reader.