Running your own feed reader means nobody can shut it down, change the price or decide what to do with your reading history. If you already have a small server, a Raspberry Pi or a cheap VPS, it is one of the most useful things you can put on it.
Three projects cover almost every need: FreshRSS, Miniflux and Tiny Tiny RSS. We ran all three on the same machine for a month.
FreshRSS: the complete one
FreshRSS is written in PHP and works with SQLite, MySQL/MariaDB or PostgreSQL, so it runs on almost any web host, including cheap shared hosting. It has several layouts, themes, multiple users, labels, filters and a large set of extensions. Its interface feels like a classic desktop reader in the browser.
It also speaks the Google Reader and Fever APIs, which means many mobile apps can sync with it: NetNewsWire, Reeder, FeedMe and Read You among them.
Choose it if you want features close to a commercial service, or several people will share the installation.
Miniflux: the minimal one
Miniflux is a single program written in Go, with PostgreSQL as its database. It is opinionated: one clean interface, no themes beyond light and dark, no plugins. In exchange it is very light, very fast and very stable. It can fetch the full text of articles that only publish summaries, and it integrates with read-later services and with apps through its own API and the Fever and Google Reader ones.
Choose it if you want something that runs for years without attention and you like plain tools.
Tiny Tiny RSS: the veteran
Tiny Tiny RSS, usually called tt-rss, has been around since 2005, the same year as the original FeedShow. It is powerful, with filters, plugins and a capable API, and it has a loyal user base. Its development has always been run in a very personal way, and its recommended installation is through Docker. It is worth a look, but for a first self-hosted reader we would start with one of the other two.
Side by side
| FreshRSS | Miniflux | Tiny Tiny RSS | |
|---|---|---|---|
| Language | PHP | Go | PHP |
| Database | SQLite, MySQL, PostgreSQL | PostgreSQL | PostgreSQL |
| Runs on shared hosting | Yes | No | Not easily |
| Extensions | Many | None, by design | Plugins |
| Mobile apps | Many, via APIs | Several, via APIs | A few |
Moving in
All three import OPML files. Export your list from your current reader, import it, and give the new one a day to fetch everything. Then set up the app on your phone and decide which one you open every morning.

