DEV Community

Cover image for I built an AI commentator that screams about your sourdough like it's the World Cup final
Arya Koste
Arya Koste Subscriber

Posted on

I built an AI commentator that screams about your sourdough like it's the World Cup final

DEV Weekend Challenge: Passion Edition Submission

This is a submission for Weekend Challenge: Passion Edition

What I Built

Last week my grandpa beat me at chess. Again. He slid his rook across the board, said absolutely nothing, and went to make tea. And I thought: this man just hit me with a tactic he's been setting up for eleven moves, and the only sound in the room was a kettle.

Meanwhile, on TV, a man kicked a ball two meters into an open net and a commentator screamed for thirty consecutive seconds, lost his voice, found it again, and thanked his mother.

That gap felt unfair. So I closed it.

GOLAZO is an AI hype commentator for your life. You describe a moment — any moment — and it gets called like the winning goal of a World Cup final:

  • Pick your booth: The Legend (measured British gravitas that erupts at exactly the right beat), La Radio (Latin American radio at full throttle — the GOOOOOL is contractually mandatory), or The Poet (golden-age radio lyricism that treats your laundry like the moon landing).
  • Pick one of nine languages.
  • Crank the intensity dial. It goes to 10. It should probably not go to 10. It goes to 10.

Then Gemini writes the commentary, it streams onto the screen word-by-word next to a blinking REC dot like a live feed, and ElevenLabs stands up in the booth and roars it out loud.

Here's what it did with my grandpa:

"...Grandpa — seventy-eight years young, cardigan flapping like a cape — slides the rook home! He's done it again! The pawns are weeping, the knights bow their heads, and somewhere a kettle whistles in triumph! CHECKMAAAAAAATE! Legends never retire, my friends — they just play the long game!"

He listened to it twice. He did not smile. He is The Legend.

There's a sincere idea hiding under the joke, though. Passion in football is the commentator — the voice is what turns a ball crossing a line into something people cry about. But that voice only exists for ninety televised minutes. Kids' leagues don't get one. Grassroots matches don't get one. Visually impaired fans watching anything below the top flight usually don't get one. GOLAZO is a tiny, silly step toward a world where every moment gets a voice in the booth — including the small ones. Especially the small ones.

Demo

Here's the booth going live — describe the moment, pick La Radio, dial it to 10, and watch the commentary stream in:

Try it yourself: tap the preset chip "Grandpa beat me at chess again", choose La Radio, intensity 10, and press Hear it. I take no responsibility for what your speakers do next.

Code

👉 Repo: https://github.com/Aryakoste/Golazo

The entire application is one index.html file. No framework. No build step. No backend. No node_modules folder achieving sentience. You could email this app to someone. Please don't, but you could.

How I Built It

The design is a broadcast, not an app. Chalk white, pitch green, ticker yellow, hard black keylines on everything, and Anton at a full italic skew because passion does not stand up straight. There's a scrolling ticker at the top and a blinking REC dot on the output, and the commentary doesn't just appear — it types itself out at broadcast pace, because passion delivered instantly is a paragraph, but passion delivered word-by-word is an event. (Ticker, blink, and typewriter all switch off under prefers-reduced-motion. Hype should be opt-in.)

Google AI (Gemini 2.0 Flash) writes every line via the generateContent REST API, called straight from the browser with the user's own free key (stored only in localStorage — the only servers your data ever touches are Google's and ElevenLabs' own). The whole project lives or dies in one prompt. Each booth has a personality brief — La Radio's literally includes "the climactic word MUST be an extended GOOOOOL-style cry adapted to the moment" — plus the language, the intensity scale, a strict 60–110 word budget, and the single rule I care most about:

Never mock the smallness of the moment. Its smallness is what makes it great.

Without that line, an LLM defaults to gentle irony — it commentates your sourdough with a smirk. With it, the output is sincere, and sincerity is the entire product. Your bread deserves a believer, not a comedian.

ElevenLabs (eleven_multilingual_v2) is the voice, and this took actual tuning. Default voice settings sound like someone reading a weather report. I dropped stability to 0.35 and pushed style to 0.7, and suddenly the delivery got loose, fast, and genuinely excited — less "newsreader," more "man standing on his chair." The multilingual model means a Spanish La Radio call actually sounds like Spanish radio. And if a visitor has no ElevenLabs key, the Web Speech API steps in as the backup announcer, so the demo works for absolutely everyone.

Your last eight commentaries are saved locally as Match Highlights, because some victories deserve a replay.

The hardest bug of the weekend, for the record, was not the AI. It was CSS. It is always CSS.

Prize Categories

  • Best Use of Google AI — Gemini writes every commentary from a style-briefed, intensity-scaled, sincerity-enforced prompt, in nine languages.
  • Best Use of ElevenLabs — expressive multilingual TTS, deliberately de-tuned from "newsreader" to "commentator who has completely lost his composure."

Now if you'll excuse me, I have a rematch to lose. Intensity 10 is standing by.

Top comments (0)