This is a submission for Weekend Challenge: Passion Edition (https://dev.to/challenges/weekend-2026-07-09)
What I Built
Ritual Radio is a World Cup fan-ritual announcer. It takes the superstitions fans actually do before a match —
wearing lucky socks, spinning three times, only sitting in one chair — and narrates simulated match moments as if
those rituals were a real force on the pitch.
You pick your team, describe your ritual, choose a commentator voice, and hit Start Broadcast. The app generates
live match events (red cards, miracle saves, last-minute free kicks) and calls each one with dramatic,
AI-generated commentary that weaves your ritual into the action.
It was built for the Passion Edition theme: football devotion is irrational, emotional, and deeply personal.
Ritual Radio turns that passion into a broadcast you can listen to.
Demo
Code
yueliao11
/
ritual-radio
ritual-radio
🔥 Ritual Radio
A World Cup fan-ritual announcer powered by ElevenLabs + Google Gemini.
Built for the DEV Weekend Challenge: Passion Edition.
What it does
Every football fan has a ritual. Ritual Radio turns yours into live, dramatic match commentary.
- Pick your team.
- Describe your match-day ritual.
- Hit Start Broadcast.
- The app simulates live World Cup moments and calls them like a legendary radio announcer — weaving your ritual into the action as if it were a supernatural force on the pitch.
The voice is generated with ElevenLabs and the commentary script is written by Google Gemini.
Tech stack
- Python / Flask — backend API
- ElevenLabs API — text-to-speech in a passionate commentator voice
- Google Gemini API — AI-generated dramatic commentary
- HTML / CSS / Vanilla JS — retro radio UI
- Web Speech API — graceful fallback when ElevenLabs key is unavailable
Run locally
cd ritual-radio
#… </p>
Live repo: https://github.com/yueliao11/ritual-radio
How I Built It
• Flask serves a single-page app and two JSON APIs:
• /api/next-event returns a simulated match moment.
• /api/commentary writes the script and converts it to speech.
• Google Gemini generates the commentary when a key is provided, prompted to act like a superstitious World Cup
radio announcer.
• ElevenLabs is the heart of the demo. It turns the script into audio using a passionate sports-announcer voice. I
use the eleven_flash_v2_5 model, cache generated MP3s by content hash, and serve them back so the broadcast
feels instant.
• The frontend is vanilla HTML/CSS/JS with a retro radio UI, an audio visualizer, and an optional API-key section
so anyone can try it with their own keys.
• I recorded the demo video with Playwright, automating the browser so the submission would have a clean,
reproducible visual.
ElevenLabs is not a decorative add-on here — it is the experience. Without the voice, Ritual Radio is just text on
a screen. With it, the broadcast feels real.
Prize Categories
Best Use of ElevenLabs
Top comments (0)