nlvogel.
StreamArticlesCoursesWorkTools
Work with me
Theme
Case study · Riverbed, my own product · 2026

Building the feed reader I wanted after Feedly

A self-hosted RSS reader, shipped to production and used every day.

v1.2.0
Running in production
Self-hosted
On my own VPS
Offline-capable
Installable as a PWA
OPML in and out
Nothing is locked in
The problem

I read a lot of feeds, and I wanted the reader to be something I owned. Every hosted option is one pricing change away from becoming a different product, and the one I had been using kept moving the parts I relied on.

The requirement that mattered was unglamorous: it had to be good enough to replace the thing I already used, on a phone, on the days I did not feel like maintaining it.

The approach

Next.js and Payload on a shared VPS, with the reading surface built as a progressive web app so it installs on a phone and keeps working without a connection.

  • Feeds refresh on a background poll rather than when you open the app, so opening it is never a wait.
  • Import and export are both OPML, so moving in or out is a file rather than a migration.
  • Every release goes through the same gated pipeline as my client work, including a browser-driven gate suite.
Placeholder image standing in for a screenshot of the Riverbed reading view.
Placeholder: real product screenshots go here before launch.
The results

It has been my daily reader since v1.0. An Obsidian plugin now captures items straight into my notes, which was the feature that made it stick.

A written account of what it does and who it is for is still being finished, and this page will carry it.

payloadnextjspwa
Work with me

Your work is good. Your website should say so.

Websites, ads, and search for businesses without a tech team.