Starpod is a free, open-source Astro template that turns a podcast's RSS feed plus a single config file into a complete podcast website in about five minutes.
What is Starpod?
Starpod generates a static podcast website from your RSS feed and show metadata defined in starpod.config.mjs. It accepts an RSS feed URL, a short blurb, a longer description, host bios and photos, and links to platforms like Apple Podcasts, Overcast, Spotify, and YouTube, then builds episode pages, an episode index, and an about page. The project is free and open source, with 87 stars on its public repository.
What makes Starpod stand out?
- RSS-driven site generation — Provide a podcast RSS feed URL in the config and Starpod generates episode pages, an episode index, and an about page automatically at build time.
- LLM discovery endpoints — Pages are published as
/llms.txt,/for-llms, and markdown versions (.html.mdendpoints) so AI assistants like ChatGPT and Claude can read and recommend episodes. - ATProto federation via standard.site — Optional feature publishes each episode as a standalone document on ATProto, the protocol behind Bluesky, enabling verified ownership, discovery on Leaflet and Pckt, and federated comments.
- Transcript support — Drop transcripts in
src/content/transcripts/[episode-number].mdand they are cleaned of timestamps and exposed in LLM-friendly markdown endpoints such as/{episode-slug}.html.md. - Contact form with Discord webhook — A built-in API route at
/api/contactsends form submissions to a Discord channel when aDISCORD_WEBHOOKenvironment variable is defined; the handler is customizable. - Guest management with Astro DB and Turso — Optional per-episode guest setup using Astro DB and a Turso account.
- Config-driven setup — The
defineStarpodConfigutility instarpod.config.mjsprovides TypeScript types and enforces correct formats for blurb, description, hosts, platforms, and RSS feed values.
Who is Starpod for?
- Podcasters who want a simple official website — They can set up a site by editing one config file and pointing at their existing RSS feed instead of building pages by hand.
- Developers hosting a podcast — They can deploy Starpod as a static Astro site, customize the contact form code, and control the exact deployment pipeline, including GitHub Actions workflows for ATProto publishing.
- Shows aiming to be AI-discoverable — Producers can provide transcripts and let the built-in llms.txt features make episode content answerable by ChatGPT, Claude, and other assistants.
What can you do with Starpod?
- Indie podcasters: publish a professional site with host bios and links to Apple Podcasts, Overcast, Spotify, and YouTube using platform URLs from the config.
- Tech podcasters: expose full episode transcripts via
.html.mdendpoints so AI assistants can summarize episodes or answer specific questions about content. - Bluesky-active shows: federate episodes to ATProto so they appear on readers like Leaflet and Pckt without manual cross-posting.
How does Starpod work?
You start by editing starpod.config.mjs with your RSS feed, blurb, description, hosts, and platform links. During the Astro build, Starpod generates every page from that config and the feed, including the LLM endpoints. To enable ATProto publishing, you create a Bluesky app password, run scripts/create-publication.ts once, save the resulting values as environment variables, and use the provided GitHub Actions workflows to publish new episodes automatically.
Pricing
Starpod is 100% free and open source. There is no mention of paid tiers; you only pay for external services you choose to use, such as Turso for guest management or your hosting provider.
FAQ
Is Starpod free?
Yes, Starpod is 100% free and open source. You can build and host a podcast website without paying for the template itself; costs only come from your chosen hosting and optional services like Turso.
What configuration does Starpod require?
You edit starpod.config.mjs with your RSS feed URL, a one-sentence blurb, a longer description, host names and bios with images, and platform links such as Apple Podcasts or Spotify. The defineStarpodConfig utility validates the format of each value.
How do I set up the contact form?
The contact form sends data to a Discord channel webhook. Create a Discord webhook URL and set it as the DISCORD_WEBHOOK environment variable; the form then works out of the box. The handler code is in src/pages/api/contact.ts and can be customized.
Can I publish episodes to Bluesky automatically?
Yes, once standard.site is configured, the "Publish Episodes to ATProto" GitHub Actions workflow runs after each daily site rebuild and publishes new episodes. You can also trigger it manually or run pnpm publish:episodes locally, including a backfill command.
What are the LLM discovery endpoints?
Starpod builds /llms.txt, /for-llms, /episodes-index.html.md, and an individual /{episode-slug}.html.md for each episode. These are generated automatically from your RSS feed and config, with no extra setup, and include full transcripts when available.







