$ cat ~nutts/blog/*.md

RSS feeds and two Macs: FreshRSS, Miniflux, and NetNewsWire

I'm fortunate enough to have two Macs; one as my main machine, and a lighter older one as my travel machine. While I enjoy the idea of using Asahi Linux on the travel machine, an M1 MacBook, it's proven unreliable and frustrating1. So the majority of the time I end up in macOS to get things done.

Contrary to popular belief, RSS isn't dead. I've used RSS feeds to receive my "news" since the time of Google Reader (2005-2013). GR was such an important product that, to this day, its API is still used as the way many services provide access to third-party RSS readers (spoiler: as you'll soon see below).

I like to avoid the news media, so most of my feeds are personal blogs (and recently lots of Bear blogs), software update feeds etc. I don't read on my phone or tablet (on purpose), but only on the computers. I've been using NetNewsWire since 2018/2019, when its original author released a new open-source version.

The problem has been syncing between the two Macs, as one of them doesn't use iCloud (on purpose). So I've been doing it manually for the last year, while I've been living the two-Mac life; marking articles as read twice, and adding new feeds in both places. It's cumbersome. I would also like a solution for viewing RSS feeds when booted into Asahi – which would essentially be a third “machine" to sync with, in the current situation.

Being I have my own domain and an OpenBSD VPS, I wanted to try self-hosting my own solution. I was initially very hopeful, having discovered FreshRSS, and the fact it works with SQLite – not a relational database with a running daemon etc.

Installing it was fine, once I got the permissions right. However, importing my existing feeds was a frustrating experience. Three of them are in JSONFeed format, and no matter how I adjusted the settings, FreshRSS always said they were empty. Importing the feeds, surprisingly it didn't detect that they were JSONFeed feeds, and they were instead set to the default "RSS/Atom". I updated the settings to manually select "JSONFeed", but still no luck. Removing and recreating them, nada. I checked and double-checked that they were valid feeds using the official JSONFeed validator, but FreshRSS wasn't having it.

Ignoring those three feeds, I couldn't get it working with NetNewsWire either. It uses the aforementioned Google Reader API to interact with FreshRSS, which you have to manually enable, but even then I just got a constant "Network error" within NetNewsWire.

In the end I've given up, for the moment, and set up a free trial with hosted Miniflux. It's $15/year, and the trial runs until the 20th, by which point I'll have a good idea of how it's working. It even detected the JSONFeed feeds correctly out of the box, who'd have thought!

The other alternatives for hosted services I looked at are Bazqux, which is $30/year, and Feedbin, which is $50/year.

I'm also aware that Miniflux has a self-hosted solution, but it only works with PostgreSQL now, and I really don't want to have to run that on my minimal OpenBSD box; it seems like overkill just for a single user's feeds to be refreshed a couple of times a day.

I might take another look at FreshRSS again at some point, but for the moment at least I have a working solution to be getting on with. If anybody has any useful information about JSONFeeds and FreshRSS, please send me an email.

Update 2026-03-15: It's worked flawlessly until now, so I've subscribed to Miniflux. I'll re-evaluate next year and see whether there are any better options for me.

  1. I'll write a separate post about that at some point.

#mac #self-hosting #tech