• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
dcm31

dcm31

self-improving-podcast

Self-improving daily podcast
Public
Like
1
self-improving-podcast
Home
Code
9
README.md
agent.ts
changelog.md
H
cover-art.ts
feature-ideas.md
H
feed.ts
C
generate-daily.ts
generate-podcast.ts
H
podcast-player.ts
Connections
Environment variables
Branches
1
Pull requests
Remixes
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
…
Viewing readonly version of main branch: v11
View latest version
README.md

πŸŽ™οΈ Self-Improving Podcast

A daily podcast that generates itself β€” and improves itself based on your feedback.

How it works

  1. generate-daily.ts runs on a schedule (interval)
  2. It checks for any unprocessed feedback and feeds it to the AI agent
  3. The agent can edit the val's own source code (e.g. add new data sources, change the script format)
  4. Then generate-podcast.ts fetches live data and generates a TTS episode via ElevenLabs
  5. The episode is stored as a blob and served via feed.ts as an RSS feed

Subscribe in any podcast app. Leave feedback via the web form. The AI agent processes it before the next episode.

Files

FileTypeWhat it does
generate-daily.tsintervalCron trigger β€” processes feedback, then generates today's episode
generate-podcast.tsscriptFetches data (weather, VO2 max, burpees, Polymarket), builds script, calls ElevenLabs TTS
feed.tshttpRSS feed, episode audio serving, feedback form (/feedback)
podcast-player.tshttpSimple web audio player
agent.tsscriptSelf-improving AI agent β€” reads own source, calls Claude, applies code edits
cover-art.tshttpPodcast cover art
changelog.mdfileLog of all agent-applied changes
feature-ideas.mdfileFuture ideas

Data sources

  • Weather β€” Open-Meteo (AraΓ§atuba, Brazil) in Fahrenheit
  • VO2 Max β€” custom Val Town dashboard API
  • Burpees β€” custom Val Town goal tracker API
  • Prediction markets β€” Polymarket Gamma API

Feedback loop

  1. Visit /feedback on the feed endpoint (linked in each episode description)
  2. Submit text feedback β€” it's saved as a blob instantly
  3. Next time generate-daily.ts runs, the agent reads all unprocessed feedback
  4. The agent calls Claude with the full val source + feedback
  5. Claude outputs edit blocks β†’ agent applies them via the Val Town API
  6. Changes are logged in changelog.md
  7. The (potentially updated) generate-podcast.ts runs to create that day's episode

Environment variables

KeyDescription
ELEVEN_LABS_API_KEYElevenLabs text-to-speech API key
ANTHROPIC_API_KEYAnthropic API key for Claude (used by agent)
TOWNIE_TOKENVal Town API token with write access (used by agent to edit own files)

Blob storage layout

self-improving-podcast/
  episodes/          β€” MP3 files (2026-03-25-1711234567890.mp3)
  feedback/          β€” Feedback JSON blobs (timestamp.json)
  agent-runs/        β€” Agent execution logs
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
AboutAlternativesPricingBlogNewsletterCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
Β© 2026 Val Town, Inc.