PlaygroundRuns entirely in your browser · no TTS calls are made

Edit a paragraph. Watch what regenerates.

Each chunk is keyed by its text and the voice profile. Keys you have seen before stay in the cache for this session, so undoing an edit costs nothing. Switching voice changes every key.

The other halfMock app · validators not run yet

The same audio, in a podcast app

Every article becomes an episode in /feed/{slug}.xml. The app, the show and the episodes shown here are a mock.

What each episode carries

  • <enclosure length>The exact byte size of the MP3, not an estimate.
  • <itunes:duration>Computed from the stitched file, in seconds.
  • <guid>Stable per article. Editing a post re-synthesizes the changed paragraphs and keeps the GUID.
  • AI-narratedEvery episode is labelled as AI-narrated.
  • Pre-warmNew posts from your sitemap are synthesized before anyone visits.

Preview — feed format not final

<item>
  <title>Every article you publish is already a podcast episode</title>
  <guid isPermaLink="false">post id</guid>
  <enclosure url="https://your-host/audio/rev/…/….mp3"
             length="exact byte count" type="audio/mpeg"/>
  <itunes:duration>252</itunes:duration>
  <description>AI-narrated audio version of "…". Read the article: …</description>
</item>