# Comparing RSS feed readers

May 22, 2021

For some time now, I really wanted to start using RSS. This keeps everything I would like to follow in one place, and will hopefully avoid launching a browser which will eat up half of my RAM.

I went through some more and less popular options to see if they are good enough for my use-case.

## Miniflux

Miniflux is a web-based RSS reader. It's really nice to use and easy to set up (takes about 10 minutes), but unfortunately it doesn't suit my use-case completely because it is a web app and I want something native, preferably terminal-based.

There's a TUI client available, but it depends on the service running. Since I'm not going to use the Web front-end anyway, this would effectively render the server obsolete.

=> mitufe - TUI client for Miniflux

=> Miniflux homepage

## Newsboat

This is by far the most popular TUI RSS feed reader. Let's see how it goes. First of, it takes quite a bit of time (almost 5 minutes to be precise) to build it. And now you can finally start using it!

$ newsboat
Starting Newsboat r2.23-195-gd2c1...
Loading configuration...done.
Opening cache...done.
Loading URLs from /home/alex/.newsboat/urls...
Error: failed to read URLs from file "/home/alex/.newsboat/urls": Failed to open file: No such file or directory (os error 2)

Uh, that doesn't seem like a very user-friendly message. Let's create that file with some links real quick. And now it finally opens.

The first thing is that it has Vi-like bindings. You can go to next and previous feeds/articles with J and K, but scrolling within the article using j/k doesn't work, which is really unfortunate.

To make it a bit nicer and more Vi-like, I've added a little bit to ~/.config/newsboat config, and this seems to work quite good!

include /usr/share/doc/newsboat/contrib/colorschemes/nord

unbind-key J
unbind-key K
bind-key j next
bind-key k prev

bind-key j down article
bind-key k up article
bind-key g home article
bind-key G end article

=> Newsboat homepage

## Snownews

Snownews is a bit less popular choice in Linux community.

By default it looks very aerc-ish (mostly colorless) and has unquestionable Vi keybindings already. One thing that is a bit annoying is that I can't scroll by lines using j/k, though it's possible with Up/Down arrows. And it's not rebindable either, no idea why it is like that ¯\_(ツ)_/¯.

The list of feeds is defined as an OPML file which is a variant of XML. I've had my initial feed list in the following format:

Feed 1=https://website1.org/feed.rss
Feed 2=https://anotherwebsite.org/feed.rss

And now it needs to be formatted in OPML, the easiest way to convert it over is to use some regular expression magic in Vis (you can probably do the same with Vim or sed) and then paste the result into ~/.config/snownews/urls.opml.

Here's the exact command I used:

:x/(.*)=(.*)\n/ c/<outline text="\1" xmlUrl="\2"\/>\n

When pressing "o", it will automatically open the original page in lynx, which is pretty good for reading not very complex articles. One issue is that it doesn't handle relative URLs if they appear in the feed. This is the case for Invidious (which I self-host btw), this still can be work-arounded by using YouTube's RSS feeds directly.

=> Snownews homepage

## Neix

Neix is the more obscure RSS feed reader, but it's great! It has Vi bindings by default, a simple configuration file, two column intuitive UI while not being overcomplicated (uuh, only if you ignore that it's written in C++).

It still has the issue of not handling relative links, but I'm looking forward to adding it in. And it can be work-arounded for my use-case by using direct YouTube RSS feeds instead.

=> Neix homepage

## My own reader!

I had some plans for writing my own RSS reader, but right now I don't really want to do that. It will be a continuation of Neix but with even simpler codebase (Go, C or [secret project]), and more integration with Unix tools.

## Conclusion

I would be sticking to newsboat for the time now, and if Neix gets better support for relative links, I'll be switching to it. And if something goes really bad, I have plans for a new reader coming.