Inspiration
Vin is an introvert and not a small-talk person. Dating apps are hard for him on both ends: getting a match, and then thinking of even one reply once you have one. You swipe, say "hey", and it goes nowhere. Despite all the progress in tech, that core problem hasn't really changed.
We (Subu & Vin) both love cooking, and we kept noticing that people with similar eating habits just get along, even as friends. How you cook and eat says more about you than small talk ever will. So we built the app we wished existed. When we pitched it, 23 of the 25 people we asked said they'd try it!
What it does
BakeOut is a dating (or friends) app where food is the personality.
- Food-first profile. A 1-2 minute card quiz instead of a bio: how you cook, your diet and allergies, favourite cuisines, signature dish, and what you'd cook to.
- Real people only. A quick selfie check (blink, turn your head) is matched against your profile photo. It runs on your device, and the selfie is never uploaded.
- Discover and match. Swipe on people looking for the same thing as you, a partner or a friend.
- Jack & Jill, your AI wingman. After a match, your cherry joins the chat and opens with something you two actually share. It stays quiet while you talk and only nudges if the chat stalls.
- A real cooking date. When you're both keen (or either of you asks), it puts a date card in the chat: a dish that fits both your diets and allergies, plus a day and time. Both of you tap Confirm. Then it shares the recipe and a song, says "Now it's on you two how you bake this out further! 🍒", and leaves the chat for good.
It runs on iPhone, Android and the web.
How we built it
This was our first time working plan-first. We used the Devpost Learn skill pack in Cursor, OpenCode, Co-pilot collaboratively (aka ran out of tokens with single harness) along with a 2-hour long discussion and shared problems, pain points & experience: scope plan, then product requirements, then a technical spec, then a build in 10 small slices, each one checked before moving on.
- App: Flutter, one codebase for iOS, Android and web
- Backend: Firebase Auth, Firestore, Storage, and Cloud Functions in TypeScript
- Wingman: Gemini 3.8 Flash with structured JSON output. On every new message, a function decides whether the wingman should speak at all. A one-minute timer handles stalled chats.
- Selfie check: MobileFaceNet (TensorFlow Lite) for the face match, with Apple Vision, ML Kit and MediaPipe for liveness. Everything runs on the device.
- Mascots: Jack and Jill are animated with Rive. The web version is hosted on Vercel.
Challenges we ran into
- Making the app feel less like AI slop Building the app was easy; knowing what makes it human was the hard part. So we gathered all our creative spirits to build our mascots from scratch using Rive to animate our wingmen, Jack and Jill to bring them to life.
- Teaching an AI to stay quiet. Making it talk was easy; knowing when not to was the hard part. It never speaks twice in a row, waits for a few human messages unless someone calls it by name, and holds a lock so two quick messages don't get two replies.
- Confirming the date. Both people have to confirm the same plan. Each date card has a version number, so tapping Confirm on an old card can't lock in a plan that has since changed.
- Face matching. With plain face crops, two different people scored about 0.6 similarity. Aligning faces by the eyes fixed it: the same person now scores about 0.78, and different people 0.18 or less.
- Simulators. ML Kit has no build for Apple-silicon iOS simulators, so we switched to Apple Vision on iOS through a small Swift bridge.
Accomplishments that we're proud of
- The whole loop works between two real people on two phones: match, wingman opener, date card, both confirm, recipe and song, wingman leaves.
- Selfies never leave the device.
- Judges can log in with one click as a ready-made matched pair.
- 96 app tests, 27 server tests and 23 security-rule tests, plus end-to-end checks against real Gemini.
- A fully working, scalable iOS, web and Android application ready to be rolled out in the App and play store (ps: after winning ;D)
What we learned
Planning first saved us. We had a deep discussion our shared problems and wanted to solve our most pressing pain point, which is meeting people and crossing the talking stage. Writing the PRD made us decide things we'd never have thought of until they broke: what happens if verification fails, what to show when Discover runs out, and what "delete my account" actually deletes (everything). Writing the wingman's rules in plain English before any code ("a mutual friend, not a chatbot", "never pretend a date is arranged") made the prompts almost write themselves. Next time we'd also set a token budget for the agent during planning.
What's next for BakeOut
Block, report and unmatch before any real launch. Push notifications. The cooking date itself, as an in-app video call. Spotify playback for the date song. Test with alpha (23 peeps who showed interest) users!


Log in or sign up for Devpost to join the conversation.