Inspiration

Becoming a mod of a podcast subreddit for one of my favorite podcasts led me to search for a way to automatically post new episodes to Reddit. The easiest option I could find was to make it myself.

What it does

Pod Poster polls one or more RSS feeds for new episodes. When a new episode is detected, it creates an interactive custom post rendered natively inside Reddit as a React WebView. The post shows the episode title, podcast name, description converted from HTML to Markdown, and a customizable Listen button. Moderators can also pick any episode from a feed's history and post it on demand via the subreddit menu.

How we built it

Started with Gemini/Google AI Studio, then migrated to Claude Code. The app is built on Devvit Web with a TypeScript/Node.js backend and a React 19 frontend bundled with esbuild. Episode content is parsed from RSS using fast-xml-parser, with HTML descriptions converted to Markdown via node-html-markdown. State is stored entirely in Devvit Redis with no external database needed.

Challenges we ran into

Devvit requires all externally accessed URLs to be pre-approved by Reddit, and their allowlist caps out at 25 domains. Getting subdomains approved was key to supporting major podcast hosts. Two platforms, Spreaker and Audioboom, don't expose RSS at an approvable domain at all. The app detects those feed URLs and reroutes requests through their JSON APIs instead, transparently. Building adapter logic so the rest of the app remained feed-source-agnostic was the main architectural challenge.

Accomplishments that we're proud of

The episode card UI went from a concept in the original "What's next" to a fully shipped feature. Posts now render as interactive episode cards with Podcasting 2.0 metadata support, including host and guest credits, chapters, funding links, soundbites, and transcripts when feeds provide them. The app also handles multi-feed configs with independent GUID tracking per feed, so reordering or adding feeds never accidentally re-posts old episodes.

What we learned

How RSS is structured, how Devvit's HTTP allowlist works in practice, how Devvit Web's server/client architecture separates a Node backend from a React WebView, and how to build adapter layers so platform-specific quirks stay isolated from the core posting logic.

What's next for Pod Poster

The custom episode card UI is live and only maintenance is planned for now.

Built With

Share this project:

Updates