DEV Community

Ricky
Ricky

Posted on

I built a self-hosted RSS reader with TTS + AI podcasts — here's how it stacks up against FreshRSS and Miniflux 🎧

I'll be honest: I paid for Readwise for years and loved the reading experience. So when I started building my own reader, I borrowed its homework — the desktop layout uses Readwise-style typography and reading flow as the reference point. Then I got TTS and AI podcasts working, and quietly cancelled my subscription. Oops 😄

This is Readaria, an AGPLv3-licensed RSS reader. There's a hosted version, but this post is about the self-hosted one. Everything runs from a single docker compose up -d.

What it does

  • RSS/Atom reading with OPML import/export, scheduled or on-demand refresh, saved articles, reading history
  • Article narration via server-generated audio (Google Cloud TTS, Azure Speech, Azure OpenAI TTS, or any OpenAI-compatible endpoint; browser Web Speech as a fallback) — queue up articles and listen on your phone like a playlist
  • AI podcasts: one click turns recent articles into a narrated briefing with multiple voices, or enable the daily scheduled job
  • AI assistance: article summaries and podcast Q&A through an OpenAI-compatible API (bring your own key, with OpenRouter fallback)
  • Mobile + desktop: an installable Vue PWA with Media Session (lock-screen controls), plus a desktop reading layout inspired by Readwise
  • Optional RSSHub routes, including compatible WeChat Official Account routes

How it compares

Readaria FreshRSS Miniflux
TTS / listen ✅ server-side, multi-provider ❌ ❌
AI podcast from feeds ✅ scheduled or on-demand ❌ ❌
AI summaries / Q&A ✅ BYOK ❌ ❌
Reading experience Readwise-inspired desktop layout classic web UI minimal UI
Mobile installable PWA PWA / third-party apps third-party apps
Self-host one-command Docker Docker single binary / Docker
License AGPLv3 AGPLv3 Apache 2.0

FreshRSS and Miniflux are excellent at what they do — this is not a takedown. Readaria is for a specific situation I kept hitting: my reading backlog had quietly become a listening backlog.

My daily drive is 2–3 hours, and I wanted that time back — to catch up on news and on the authors I follow. Readwise and Instapaper are great at saving articles, but none of the tools I tried would turn followed authors' new posts into a playlist, let alone a podcast that discusses them. So I built it.

If any of this sounds like you — the commute, the dog walk, the "I'll read it later" pile that mostly delivers guilt and eye strain — that's exactly the use case. (Unexpected side effect: it genuinely helps with my ADHD. A queue I can listen to is a queue I actually finish.)

Quick start

git clone https://github.com/Blacksheeppy123/readaria.git
cd readaria
cp .env.example .env
# set a database password and strong SECRET_KEY / JWT_SECRET_KEY values
docker compose up -d
Enter fullscreen mode Exit fullscreen mode

Prefer to try before self-hosting? https://demo.readaria.com has pre-generated podcasts and doesn't require signup to browse.

Notes for self-hosters

  • TTS keys are optional per provider; without any key, browser Web Speech still works.
  • The AI podcast job is off by default — enable the schedule only if you want it.
  • OPML import means migrating from any other reader takes one file.

Roadmap-ish

Issues and PRs welcome. Things I'm chewing on: better podcast script control, more TTS providers, and an API surface so agent tooling can subscribe and listen on your behalf.

Repo: https://github.com/Blacksheeppy123/readaria

Top comments (0)