This is a submission for Weekend Challenge: Passion Edition
What I Built
Passion Roast is an AI "Passion Judge" that looks at a photo of your fan setup, collection, or hobby corner β plus the name of whatever you're obsessed with β and roasts you for it, scores your devotion out of 100, and hands you a mock diploma for your dedication.
The goal was simple: capture the universal feeling of being a little too into something you love, and let an AI genuinely react to real, specific details in your photo instead of giving generic responses.
Demo
π Live app: https://passion-roast-production.up.railway.app
π₯ Demo video / GIF: <link here>
Try it with a photo of anything you're passionate about β a jersey collection, a gaming setup, houseplants, vinyl records, whatever. Each roast is generated fresh from what's actually in the picture.
Code
https://github.com/NOVA-X-Code/passion-roast
How I Built It
- Backend: Node.js + Express, with Multer handling in-memory image uploads (no files ever touch disk).
-
Google AI (Gemini API): the entire app is built around a single multimodal call β the uploaded photo (as
inlineData) and the declared passion are sent together to Gemini with a system prompt defining "The Passion Judge" persona. Gemini is instructed to return strict JSON (passion score, mock diploma title, roast, verdict), which the backend parses and validates before sending it to the frontend. - Frontend: vanilla HTML/CSS/JS with drag-and-drop upload and a shareable-style result card β no frameworks, no build step.
I deliberately kept the stack to a single external API. Rather than chaining multiple services, I focused on getting real value out of Gemini's multimodal reasoning: the roast has to reference actual details Gemini sees in the image, not just repeat the passion name back with generic flattery/insults.
Prize Categories
- Best Use of Google AI
Top comments (0)