Switching from Inoreader to Newsboat for RSS Reader

update: In , I switch my everyday text editor Emacs (Emacs 🔍). In , I began exploring Elfeed, an Emacs plugin. In doing most of my work in Emacs, I find it convenient to have an RSS feed right in the text editor. Newsboat remains a solid RSS reader, its just I’ve found something closer to my toolkit.

update: Two weeks into using Newsboat, and I’m loving it. Because of the text-based RSS reader, I discovered that my site’s RSS feeds were publishing items that had relative Uniform Resource Locators (URLs 🔍). Which could’ve resulted in broken URLs for RSS subscribers. From a habit stand-point, I’m checking my RSS feeds twice a day: once during breakfast and once in the evening.

At present, I have a paid subscription to Inoreader. It provides both a web-interface as well as a mobile app, synchronzing read content between the two.

But, I’ve noticed that I graze on my Rich Site Summary (RSS 🔍) feed on my mobile device; Swiping through articles out of boredom.

This past week I began experimenting with Newsboat as my local RSS client. I exported my Outline Processor Markup Language (OPML 🔍) document from Inoreader. I then imported that OPML into Newsboat.

Visual Tour (for a text-based RSS Client)

First and foremost, Newsboat has a text-based command-line interface. You will not see images in your feed. I have configured Newboat so I can open any link or article in Firefox using a shell script

Instead of adding screenshots with the minimal colors, I’ll copy and paste each screen. For those curious, here is a link to my Newsboat configuration.

Feed List Dialogue

Newsboat loads a Feed List dialogue. In my configuration I have four columns configured: Index, Read/Unread, Unread/Total, and Feed Title. By default I hide feeds I’ve already read (by the config show-read-feeds no).

newsboat 2.19.0 - Your feeds (8 unread, 8 total)
   1 N     (1/459) Blogroll for Take on Rules
   3 N    (12/111) Recent articles
  82 N      (1/18) Alex Schroeder: Diary
 198 N     (3/113) Indie RPG Planet
 199 N     (5/206) Old School RPG Planet
 590 N      (1/26) Skullsword's Tower
 954 N      (1/26) Den of the Lizard King
1201 N      (1/27) msjx

q:Quit ENTER:Open n:Next Unread r:Reload R:Reload All A:Mark Read C:Mark All Read /:Search ?:Help

A Newsboat query feed populates the “Blogroll for Take on Rules”. The “Blogroll for Take on Rules” queries all feeds tagged with “blogroll” and aggregates those articles.

Here’s a sample from my urls.txt:

"query:Blogroll for Take on Rules:tags # \"blogroll\""
https://alexschroeder.ch/wiki/feed/full/ "Gaming/RPG" blogroll
https://gohugo.io/index.xml "FOSS"

In the above Feed List dialogue, “Alex Schroeder: Diary” shows as its own feed (index 82) and Newsboat counts the articles from Alex’s blog in the “Blogroll for Take on Rules.”

Article Dialog

The Article Dialog renders the textual content and footnotes each link.

Below is an excerpt from Alex Schroeder’s The effects of stats in simple games.

newsboat 2.19.0 - Your feeds (8 unread, 8 total)
Feed: Alex Schroeder: Diary
Title: The effects of stats in simple games
Author: kensanata@gmail.com (Alex Schroeder)
Date: Sun, 12 Apr 2020 09:15:56 -0400
Link: https://alexschroeder.ch/wiki/2020-04-12_The_effects_of_stats_in_simple_games

If you’ve played OD&D, or Swords & Wizardry, or
any of the other old school games out there, you
have encountered this before, regarding monster
stats: monsters have hit dice (HD); this
determines how many hit they can take, on average.
Each hit die is 1d6, and each damage die is also
1d6. In later games, the picture is not that
simple anymore. In 
Dungeons and Dragons: Basic/Expert (B/X 🔍) we already notice that many
fighters have a strength bonus, but monsters also
use 1d8 for hit dice. For the purpose of this blog
post, I don’t care about the details.

I care about this relationship: every extra 
Hit Die (HD 🔍)
allows a monster to survive one more hit; every
extra HD also allows a monster to hit more easily;
extra HD also allow a monster to better resist

What does it mean to survive more hits? It means
that fights take longer, or that monsters can take
on more enemies. It’s not that simple because the
monster is also better at hitting the opposition.
Without that twist, it’d be boring: four
characters hit a monster with 4 HD and it’s dead;
four characters hit monster with 8 HD and it takes
two rounds to kill. The difference is that the 8
HD monster probably deals more damage to the
characters. Most likely it also has special
abilities that make it even more dangerous.

The net effect is hard to predict and that’s
probably what makes the game interesting.

I’m trying to apply the same kind of analysis to
Just Halberds[1].

[1]: https://alexschroeder.ch/wiki/Just_Halberds (link)

When reading the article, I can type o to open the article in Firefox (as per my configuration). I can also type 1 to open the first link (e.g. https://alexschroeder.ch/wiki/Just_Halberds). I can also type s to save the article to my machine.

The saved articles are either “of future interest” or something which I may write a response. Regardless, I have a plain-text copy of the article for future reference.

Deeper Level Hacking

Newsboat stores the articles in a local SQLITE database. If I want, I can run queries against that database. Maybe I want to find all of the links to a given site throughout the articles? Easy.

As part of my publish process, I now use my URL file for Newsboat to populate the blogs in my . Prior to Newsboat, I manually managed the Blog Roll seperately from the Inoreader feeds.


With Newsboat, I’m able to continue using RSS. I can now consider leaving a paid subscription (which is certainly using my data as part of the surveillance capitalism paradigm). I had explored using NetWireNews, which provides a nice Graphical User Interface (GUI 🔍), but didn’t quite work for me.

I also get the ability to write scripts against the entire ecosystem. I can specify the directory for the SQLite cache database, the file to use for URLs, and where to save the plain text articles.

In other words, Newsboat gives me direct and unfettered access to the inputs and outputs of the entire RSS experience.