Inspiration

"What should I watch?" is the wrong question. The real question is usually "what do I want to feel right now?" — and no streaming app lets you search for a feeling. ClickToVibe fixes that: describe your mood, skip the genre-scrolling spiral, and get five movies that actually match the vibe in your head.

What it does

Type a mood — "a rainy Sunday," "need something that feels like a warm hug," "chaotic but comforting" — and ClickToVibe hands back five real, released movies, each with title, year, runtime, and a quick note on why it fits. No dropdowns. No "Top Picks For You" nonsense. Just the vibe, translated into five things to watch.

How we built it

  • Google Gemini (gemini-3.6-flash) does the actual matchmaking, called directly from an Express/TypeScript backend via the Generative Language API
  • Replit Agent carried a lot of the scaffolding and iteration weight during development
  • Replit Deployments hosts the live app on autoscale
  • React + Tailwind on the frontend, Zod keeping the client and API honest about what shape of data they're passing around

Challenges we ran into

Gemini decided to keep us humble: partway through, gemini-2.5-flash started throwing 404s because it had quietly been deprecated for new API keys — mid-hackathon, no warning. The fix turned out to be hiding in plain sight in Google's own error response, which pointed straight at the replacement model. Lesson learned the hard way: don't hardcode a model name and walk away — check the live /v1beta/models list like it might change under you, because apparently it will. We also found out fast that asking Gemini nicely for JSON isn't the same as enforcing it — a strict schema in the prompt turned a flaky feature into a boringly reliable one.

What we learned

APIs age faster than you'd think, and the fastest debugging move isn't guessing — it's reading the actual error text Google hands you instead of just the status code.

What's next

Optional filters (runtime, era, language) layered on top of the mood search, without losing the "just tell me how you feel" simplicity that's the whole point.

Share this project:

Updates

Submission history