Building the feed reader I wanted after Feedly
A self-hosted RSS reader, shipped to production and used every day.
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.
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.

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.
Design first, then a build with booking, contact and a privacy page in the client's own words.
Read the case study →Stratus · 2026Paid media and reporting for an MEP software companyLinkedIn, Google and Reddit campaigns, HubSpot audiences, and reporting that fits on one page.
Read the case study →Your work is good. Your website should say so.
Websites, ads, and search for businesses without a tech team.