How I Follow the News with RSS
By Ryan Cao
Published on 2023-01-31
A while ago, I added an RSS feed to this website, because I felt that such a subscription mechanism would be good to have since I didn’t have an email newsletter set up. (You can subscribe to it with RSS or Atom). I wasn’t using an RSS reader, so I went ahead and downloaded NetNewsWire to check what my RSS feed would look like. Surprisingly enough, I liked the experience, and I went around the blogs I often read searching for RSS feeds.
It felt like a really neat idea, that you could have someone publish a piece of XML on their own site that you can subscribe to and unsubscribe from at any time, from all sorts of different clients through an open, standardized specification. I usually don’t sign up to newsletters I see around the web except the ones I really like because it clutters my inbox and I would be giving away my email address; now I’ve discovered that there was an option to have a separate, fully hackable inbox that I could change around at will. I had visibility into all the feeds I was subscribing to and had more control over what I was viewing.
This also removed some of the anxiety associated with social media that I had been feeling. A large part of why I check social media platforms like Twitter often is to catch up on updates (including blog posts, downtimes, etc.), and with RSS feeds, I could have a place to take in the content in a format and organization structure I chose, without the distractions of social media. The flexibility of RSS / Atom feeds meant that all sorts of updating content can be fit into subscribe-able feeds: web app statuses, blog posts, GitHub notifications, software release changelogs…
Coincidentally, I came across RSSHub around this time, and found even more ways to enrich the content of my RSS reader. RSSHub works by using APIs, HTML crawling, and Puppeteer to aggregate content from all sorts of different sources into RSS feeds which can then be subscribed to from any client with different output feed formats. It is also open source and self-hostable, making adding a new source of data trivial. It enabled me to subscribe to various different platforms that didn’t support RSS officially.
So far, I’ve been using NetNewsWire as my main RSS reader. It was a native macOS app, and it worked well. However, when it came to cross platform sync and content storage, only using NetNewsWire had some shortcomings. After tooting about my newfound fascination with RSS, someone recommended Miniflux, a “minimalist and opinionated feed reader”, to me. I had seen it a few months ago, but thought it was unnecessary at the time. I had also self hosted an Eleventy based RSS reader before, but now I felt that a more production-ready RSS reader with a server and a database to back it was in order, since I was relying more on RSS to get my news instead of just using it for fun.
With Fly.io’s Postgres support, I was able to get a quick internally-available Postgres database running and linked to the main app, which also runs on Fly.io with Miniflux’s Docker image. Fly.io’s affordable offering meant that I could upgrade or downgrade the server and the database whenever the need surfaced.
The UI was minimal and lightweight, and the server was very speedy and low on resource consumption (Miniflux is written in Go).
Miniflux also has various very cool features such as sharing links in your feed to others, categories, stars, a PWA, integrations for various other APIs such as Matrix and Pocket, and advanced content manipulation using custom scraper rules, rewrite rules, regexes, etc.
Nonetheless, the feature I value most about Miniflux is that I had control over my data, what I was subscribed to, what I was not subscribed to.
My RSS setup composed of Miniflux deployed on Fly.io and RSSHub now enables me to read aggregated news from various sources without distractions or a cluttered, messy email inbox. It’s an old protocol, but I’ve come to realize its lasting usefulness and importance.