RSS and Atom feeds are one of the most underrated tools on the web: they let you follow sites, blogs, magazines and channels without depending on an algorithm that decides what to show you. The limitation of readers installed on a single device is that each phone and each computer keeps its own list of read articles. A feed reader hosted at home solves the problem: one place that fetches updates and synchronises them across every device. FreshRSS is one of the most mature choices.
Why FreshRSS
FreshRSS is a free web application written in PHP. It is lightweight, supports multiple users, handles thousands of feeds with ease and offers a responsive interface that also works well on a phone. Its real strength, though, is compatibility: it exposes the APIs used by many mobile apps, so you can keep reading with your favourite app while the server does the heavy lifting.
Installation
The simplest route is the official container image. There are only a few things to decide:
- Database: SQLite is perfectly fine for one or a few people; PostgreSQL or MySQL are needed only with many users.
- Data folder: it must be mounted outside the container, because it holds configuration, users and the SQLite database.
- Time zone: setting it correctly avoids wrong dates on articles.
On first access a guided setup creates the administrator account. From there you can import your subscriptions from an OPML file, the standard format almost every reader can export.
Refreshing feeds
FreshRSS does not fetch feeds on its own if nobody opens it: it needs a periodic task. The container image includes an option to schedule the refresh, usually set with a variable indicating the minutes of the hour at which to run it. In a traditional installation, a cron job runs the update script.
How often should it refresh? For home use, every 20 to 30 minutes is more than enough. Refreshing every minute does not bring fresher news and places a needless load on the sites you follow. FreshRSS also supports WebSub, a mechanism through which some sites notify the reader directly when they publish something, without waiting for the next round.
Reading on your phone
To use a mobile app you need to enable API access in the authentication settings and set, in your user profile, an API password distinct from the web login password. FreshRSS exposes two compatible interfaces:
| API | Characteristics |
|---|---|
| Google Reader compatible | The most complete: folders, labels, read status and favourites |
| Fever | Simpler, supported by several long-standing apps |
Many readers for Android and iOS support at least one of the two. The separate API password has a practical advantage: if a phone is lost, you change it without touching the main password.
Organising and filtering
A feed reader is only useful if it stays manageable. Some features help you avoid drowning in articles:
- Categories: grouping feeds by topic lets you read what really matters first.
- Filters and saved searches: you can automatically mark as read articles containing certain words, or create views that show only what matches a search.
- Automatic clean-up: set how long to keep articles, always retaining favourites.
- Labels: useful for setting aside articles to reread or share.
Sites without a feed
Not every site publishes a feed. FreshRSS offers an extraction feature based on XPath expressions: you specify which part of the page contains the list of articles, which the title and which the link, and the program builds a feed on its own. It works well with news pages that have a regular structure; it needs rechecking if the site changes its design.
There are also extensions that broaden its features, for example to fetch the full text of articles when the feed contains only an excerpt.
Exposure and security
A feed reader holds little sensitive information, but it still reveals interests and habits. If you use it only at home or through a VPN, there is no need to expose it. If you want to reach it from outside, the usual rules apply: HTTPS, a strong password and, if available, a single sign-on system in front of the web interface. The mobile APIs use their own dedicated password, so choose it long and random.
In short
- FreshRSS centralises feeds and synchronises reading status across all devices.
- It needs a scheduled refresh; every 20 to 30 minutes is enough for home use.
- Google Reader and Fever compatible APIs let you use your favourite mobile apps.
- Categories, filters and automatic clean-up keep the reader manageable.
- XPath extraction creates feeds even for sites that do not offer them.