RivalryFuel: AI Hype Commentary for Any Rivalry A developer built RivalryFuel, an AI-powered hype commentary generator that turns any rivalry into a dramatic stadium-announcer-style speech. The app uses Gemini 2.0 Flash for generating biased commentary and ElevenLabs for text-to-speech, deployed on Google Cloud Run with a React frontend. This is a submission for Weekend Challenge: Passion Edition RivalryFuel — an AI-powered hype commentary generator that turns any rivalry into a dramatic, stadium-announcer-style speech. Pick two sides sports teams, tech stacks, even Tea vs Coffee , hit generate, and Gemini writes a passionate, biased commentary — then ElevenLabs brings it to life with a real announcer voice. With the World Cup happening right now, passion for rivalries is everywhere — in stadiums, group chats, comment sections. RivalryFuel captures that same chaotic, biased energy in a 30-second, shareable format. My goal was to build something that felt genuinely fun to click "generate" on more than once. 🔗 Live App: https://rivalryfuel-686994035117.asia-southeast1.run.app https://rivalryfuel-686994035117.asia-southeast1.run.app 🎥 Video Demo: https://youtu.be/imMa8FMHlck https://youtu.be/imMa8FMHlck Try it yourself — click a preset like "Messi vs Ronaldo," hit Generate Commentary, then hit "Listen to Column" to hear it out loud. The app is built with React + TypeScript + Vite + Tailwind CSS, deployed on Google Cloud Run. Gemini 2.0 Flash powers the core hype generation — I engineered the prompt to keep responses playful, biased toward the chosen side, and dramatically "shouted into a stadium mic" rather than neutral or robotic. Getting the tone right took a few iterations of prompt tweaking. ElevenLabs handles the text-to-speech layer — the generated commentary is sent to ElevenLabs' API and played back in-browser as a stadium-announcer voice, turning static text into something that actually feels alive. One fun challenge: I hit Gemini's free-tier rate limit mid-build and had to switch API keys/projects to keep testing — a good reminder that even small demo apps need quota planning. I also had a UI bug where longer names like "Cristiano Ronaldo" were clipping on smaller screens, fixed with responsive flex layouts and dynamic font scaling. Submitting for: Thanks for putting together another fun challenge — built this solo over the weekend Would love to hear what rivalry you'd want to see hyped up next 🔥