Building Feedline, an Offline RSS Reader for Android

I have been using NetNewsWire on my MacBook for years to read tech blogs. My feed list is the most peaceful corner of the internet for me, and it has been nice to see RSS become cool again over the last couple of years.

The only problem is that NetNewsWire does not have an Android app, and I have been travelling a bit over the last few months. Taking out a laptop to read a few posts is not always convenient. I tried a bunch of RSS reader apps on Android and none of them felt right to me. So I decided to build one for myself, and it eventually became good enough that I released it for everyone.

Say hello to Feedline. The app is on Google Play now, and it is probably the cleanest RSS reader I have used on Android. That is mostly because it does less.

Feedline timeline, reader, feed picker and settings screens

Feedline is a free RSS/Atom reader for Android. There are no accounts, no servers and no tracking. Your feeds, articles and images live on your phone, so once a refresh is done, you can read your articles even without an internet connection.

What it can do

Why I built another RSS reader

I had already tried running FreshRSS on a Raspberry Pi to read feeds on my phone. It works well when you want one reading list across devices, but it still needs a server that you have to maintain.

For the phone, I wanted something simpler. A list, a good reader, and everything available offline. None of the apps I tried gave me that, so I built the app I wanted.

The other decision was no backend. There is nothing to sign up for, nothing to sync to someone else's server, and the only network requests the app makes are to the feeds you subscribe to. The source is on GitHub under the MIT license, so you can check that yourself.

Under the hood

Feedline is built with Expo and React Native, with SQLite on the phone. Search uses SQLite's FTS5 extension, which is why it works without a connection as well.

When a feed only gives a summary, Feedline fetches the article and runs Mozilla Readability on it. And that runs inside a hidden WebView instead of the main JavaScript thread, so extracting an article never freezes scrolling or gestures.

How to install

Feedline needs Android 7.0 or newer. You can install it from Google Play, and the APK is still on GitHub Releases if you prefer that.

  1. Install it from Google Play. If you want the APK instead, download feedline.apk on your phone. That link always points to the latest release.
  2. If you are installing the APK, open the file. If Android asks, allow your browser to install apps. Play Protect may warn you about an app from outside the Play Store, so tap More details → Install anyway.
  3. Open Feedline, add a feed by site address, or import an OPML file from your current reader. Your existing subscriptions come along.

Updates from Google Play are automatic. With the APK, install a new version the same way you installed the first one, and your feeds, saved articles and settings are kept. If you turn on Settings → Follow Feedline updates, new versions show up in your timeline like any other feed.

What's next

Feedline is Android-only and light-theme-only right now. There is no sync between devices because there is no server. Those are the tradeoffs that keep the app simple, and I am fine with them for now.

I will keep fixing what annoys me and ship small updates. If you try it and something breaks, open an issue on GitHub.

That's it.