Turn any article, PDF, or pasted text into a two-host AI podcast you can stream and download. Built on the DeepSpace SDK and deployed to Cloudflare Workers.
Live: podcastify.app.space
Paste text / a URL / upload a PDF, pick two hosts, a vibe, and a length, then hit Generate. A durable background job runs a multi-stage pipeline with live progress that survives a page refresh:
- Reading — scrape the URL (
firecrawl), extract the PDF (cloudconvert), or use the pasted text. - Writing script —
anthropicwrites a natural two-host dialogue + a title in the chosen vibe, sized to the length budget. - Recording —
elevenlabsTTS per line, a distinct voice per host. - Stitching — clips are concatenated into one seekable MP3, stored in R2; the episode is saved to your library with a transcript synced to playback.
- DeepSpace SDK — auth, RBAC, real-time records, background jobs (
useJobs), scoped R2 storage, integration proxy. - React + Vite + Tailwind, shadcn-style UI kit.
- Cloudflare Workers + Durable Objects.
npm install
npx deepspace login # authenticate with app.space
npx deepspace dev # local dev server
npx deepspace test # Playwright suite
npx deepspace deploy # deploy to <name>.app.spaceThe data model, pipeline, and UI live under src/ (schemas/, jobs.ts,
pages/, components/podcast/) and worker.ts. Integration billing is
developer-paid (the app owner), so the app stays free for end users.