Every consumer 'AI podcast' app that paid for its users' TTS has shut down — Recast, PlayNote, Huxe. The architecture that survives is the one where the pipeline is yours: open source, running on your own free-tier accounts, with no burn rate to kill it.
There is deliberately no backend. A scheduled job (GitHub Actions or cron) fetches your sources, rewrites them with an LLM, synthesizes audio, and uploads everything to object storage. The storage bucket serves a standard podcast RSS feed and a static PWA player. The only dynamic code is a tiny serverless function that writes your settings.
Fill two Cloudflare values in .env, then npm run setup creates the bucket, enables the public domain, generates an admin token, deploys the player, and prints your podcast feed URL. The whole thing is idempotent — rerun it anytime.
After setup you shouldn't need a terminal: the player's settings page adds/removes feeds, queues single articles, and accepts ebook uploads (which start converting within minutes). Your phone is the admin console.
No. GitHub Actions can run the daily pipeline for free. A VPS only adds faster 'upload → listening' latency via a polling timer (minutes instead of next-day).
Storage and bandwidth: $0 on free tiers. LLM: a few cents per day, optional. TTS: free for personal use, swappable for a paid provider if you need commercial rights.
So improvements to hosted deployments flow back to the community. For personal self-hosting AGPL imposes nothing on you.