This is a submission for Weekend Challenge: Passion Edition
What I Built
EL RELATOR takes any moment of your life — "my test finally passed after three hours of debugging", "I found parking on a Friday at 6pm", "my daughter took her first steps" — and narrates it as an over-the-top radio football commentary, complete with the legendary elongated ¡GOOOOOOOL!, delivered as real audio.
You type the moment, pick a language (Spanish or English — the whole UI and the narration switch), pick an intensity, and a relator loses his mind over your small victory like it's stoppage time in the World Cup final.
Three intensity levels:
- Radio 🎙️ — classic radio call, emotional but controlled
- Final 🏆 — championship final energy
- Infarto / Cardiac 🔥 — minute 93, World Cup final, on the verge of happy tears
The goal: with the World Cup ongoing, everyone deserves their own personal commentator. Because passion doesn't distinguish between a stoppage-time final and a green test suite on a Friday deploy.
Demo
🎬 Watch the 60-second promo (with sound — the voice IS the demo)
The promo itself was narrated with the same ElevenLabs voice the app uses — including a live "GOOOOOOOAL!" over a passing test suite.
Here's what it produced for "I found parking right in front of the building, on a Friday at 6pm" on Cardiac mode (English):
It is ninety-three minutes on the clock. Friday evening. The rain is pouring, the traffic is a wall of steel, and the hope is fading. […] He cuts inside, he cuts back, he guides the vehicle into the tightest of corridors, AND HE HAS DONE IT! GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAL! THE PARKING SPACE IS HIS! […] I am weeping, ladies and gentlemen, we are witnessing absolute perfection!
And in Spanish, for "after three hours of debugging, my test finally passed" on Infarto:
[…] le da play a la consola y el cursor empieza a correr, corre, corre, busca el destino de gloria, se enciende la pantalla y se pone, se pone, ¡SÍ, SE PONE VERDE! ¡GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL! ¡GOL DE LA VIDA! ¡PASÓ EL TEST! […] ¡y el alma que vuelve al cuerpo en un grito sagrado que lo escucha todo el barrio!
Run it locally in under a minute (both APIs have free tiers):
git clone https://github.com/terrizoaguimor/el-relator
cd el-relator
cp .env.example .env # add your Gemini + ElevenLabs keys
npm install && npm run dev # open http://localhost:4321
Code
terrizoaguimor
/
el-relator
Any moment of your life, narrated like a World Cup-winning goal. Gemini writes, ElevenLabs screams. DEV Weekend Challenge: Passion
EL RELATOR ⚽📻
Any moment of your life, narrated like a World Cup–winning goal. In Spanish or English.
Passion doesn't distinguish between a stoppage-time final and a green test suite on a Friday deploy. EL RELATOR takes any moment you give it — "my test finally passed", "I found parking", "my daughter took her first steps" — and turns it into an over-the-top radio football commentary, complete with the legendary elongated ¡GOOOOOOOL! / GOOOOOOOAL!, delivered as real audio.
Built for the DEV Weekend Challenge: Passion ❤️🔥
Example output (input: "I found parking right in front of the building, on a Friday at 6pm", intensity: Cardiac):
It is ninety-three minutes on the clock. Friday evening. The rain is pouring, the traffic is a wall of steel, and the hope is fading. […] He cuts inside, he cuts back, he guides the vehicle into the tightest of corridors, AND HE…
How I Built It
If there is one universal language of passion, it's the voice of a football relator. That voice doesn't distinguish between a Champions League final and a green test suite — passion is passion.
Tech stack
| Layer | Technology |
|---|---|
| Script generation |
Google Gemini (gemini-flash-latest, Google AI Studio API) |
| Voice |
ElevenLabs (eleven_multilingual_v2) |
| Framework | Astro 5 — SSR with the Node adapter; the page and the API route live in one project |
| Frontend | Vanilla HTML/CSS/JS: floodlight sweeps, LED ticker, scoreboard, audio equalizer, confetti on every goal |
Your moment + language + intensity
│
▼
Astro API route (/api/relato)
├─► Gemini ──► writes the commentary script
└─► ElevenLabs ──► gives it the voice
▼
MP3 + script back to the browser
Google AI (Gemini) — the writer 🖋️
Gemini runs with an in-character system prompt per language: it IS the relator. The prompt encodes the craft of radio commentary — short phrases that build tension, accelerate, and EXPLODE at the climax with elongated vowels, then land on a poetic closer ("y lo grita todo el barrio" / "and the whole neighborhood is screaming"). Each intensity level changes the writing brief, and sad moments are narrated too — with the epic dignity of a lost final.
A detail that mattered: the prompt treats the output as a radio performance, not text — no emojis, no markdown, elongated vowels, punctuation as pacing, 60–110 words (~30–45s of audio). I also set thinkingBudget: 0 so tokens go to the script, not reasoning.
ElevenLabs — the voice 🎙️
The script goes to ElevenLabs, and this is where the project comes alive. Two tricks:
-
One multilingual voice (
eleven_multilingual_v2) performs both Spanish and English — same commentator, two languages. - Voice settings are tuned per intensity level:
| Intensity | stability | style |
|---|---|---|
| Radio | 0.45 | 0.55 |
| Final | 0.30 | 0.80 |
| Infarto | 0.15 | 1.00 |
Lower stability + maxed style = a genuinely unhinged, cracking, emotional delivery. On Infarto, the voice actually sounds like it's about to lose it during the ¡GOOOOOL! — which is exactly the point. The elongated vowels Gemini writes give the TTS something real to scream.
The same intensity knob drives both the writing brief and the voice settings — writer and performer are directed together, which is what makes the output feel coherent.
What I learned
- ElevenLabs'
stability/stylesettings are a legit performance direction tool, not just quality knobs. - Writing FOR text-to-speech is its own discipline: the system prompt treats the script as a radio performance, not text.
- Astro's SSR mode makes this kind of project trivial:
src/pages/api/relato.tskeeps both API keys server-side, and the page ships almost zero framework JS.
Prize Categories
This submission is for Best Use of Google AI and Best Use of ElevenLabs:
-
Google AI: Gemini (
gemini-flash-latest) is the writer — bilingual in-character system prompts turn any life moment into a 60–110 word radio goal call, with the intensity level shaping the writing brief. -
ElevenLabs:
eleven_multilingual_v2is the performer — one voice speaks both languages, and per-intensitystability/stylesettings direct the emotional delivery, from controlled radio call to full minute-93 meltdown.
Passion doesn't need a stadium. Sometimes it's just you, a green test, and a voice screaming ¡GOOOOOOOL! at 2am. ❤️🔥
Top comments (0)