rpodder¶
A modern, self-hostable gpodder.net replacement written in Rust.
rpodder syncs your podcast subscriptions and episode progress across devices. It implements the gpodder.net API so you can use it with apps like AntennaPod, gPodder, and Kasts — without depending on a third-party service.
Why rpodder?¶
gpodder.net has been the de facto standard for open podcast sync for years, but the original service is aging and the hosted instance is often unreliable. Several alternatives exist, but none quite hit the sweet spot we were looking for:
| Feature | gpodder.net | micro-gpodder | gpodder2go | opodsync | rpodder |
|---|---|---|---|---|---|
| Full gpodder API | Yes | Partial | Partial | Partial | Yes |
| Web UI | Yes | No | No | No | Yes |
| Self-hostable | No | Yes | Yes | Yes | Yes |
| SSO / OAuth2 | No | No | No | No | Yes |
| External search (Podcast Index) | No | No | No | No | Yes |
| Dual database (PG + SQLite) | No | SQLite | SQLite | SQLite | Yes |
| Single binary | No | Yes | Yes | Yes | Yes |
| Written in | Python | Python | Go | Rust | Rust |
rpodder aims to be the gpodder.net you'd build today: fast, secure, self-hostable on a Raspberry Pi, yet scalable to thousands of users with PostgreSQL.
Features at a glance¶
- Full gpodder.net API — subscriptions, episode actions, devices, sync groups, settings, favorites, chapters, podcast lists
- Built-in web UI — Svelte 5 + Tailwind, embedded in the binary. Browse, search, manage subscriptions, admin panel
- Podcast Index integration — search millions of podcasts, trending charts with language filters
- SSO / OAuth2 — OIDC single sign-on with any provider (Authentik, Keycloak, Google, etc.)
- User roles — admin/user system, first-user auto-admin, group-based admin mapping
- Password management — self-service change/reset, admin override, SSO-friendly
- HTTPS upgrade suggestions — detects insecure subscriptions and proposes upgrade
- Privacy — private/paid feeds with tokens in URL are hidden from the public directory
- Dual database — PostgreSQL for production, SQLite for personal use
- Single binary — one
rpodderbinary with everything included - Docker ready — multi-stage Dockerfile, compose profiles for every scenario
Screenshots¶
Browse & Search
Trending (Podcast Index)
Podcast Detail
Admin Panel
Quick taste¶
# SQLite mode — up and running in 30 seconds
docker compose --profile sqlite up -d
docker compose exec rpodder-sqlite rpodder user create myuser mypass --admin
# Open http://localhost:3005
About this project¶
100% Vibe Coded
Let's be upfront: rpodder is 100% vibe coded. Every line of Rust, every Svelte component, every SQL migration, and even this documentation was written through collaborative sessions between a human (@thekoma) and Claude (Anthropic's AI). We believe in radical transparency about how software is made.
Does this mean the code is bad? No — it has 90+ tests, passes clippy with zero warnings, and has been tested with real podcast clients. It means we used AI as a force multiplier to build something that would have taken months in days.
We think this is the future of software development, and we're not going to pretend otherwise.
License¶
rpodder is licensed under AGPL-3.0-or-later. This means you can use, modify, and distribute it freely, but if you run a modified version as a service, you must share the source code.