Inspiration
This project came directly from Eitan Bernath’s brief: people save recipe videos/links all day, but dinner still ends up being “whatever’s easy” because the gap between inspiration and execution is huge. We’ve personally felt this—TikTok/YouTube saves pile up, ingredients aren’t on hand, and the steps are annoying to follow mid-cook—so we built RecipeToDinner to make “I saw this” turn into “it’s on the table” in minutes.
The problem we set out to solve
Recipes are scattered across platforms, and the “last mile” is painful:
- Turning a link into ingredients + steps takes effort
- Shopping lists are manual and messy
- Cooking requires constant context switching
- There’s little motivation/feedback loop to keep cooking momentum
What we built
RecipeToDinner is a cross‑platform app that makes a single flow feel effortless:
- Magic Import: paste a TikTok/YouTube/website URL → AI extracts a structured recipe
- Review & Edit: a safety net so imports never “fail,” they just become editable
- Smart Grocery List: merges duplicates + aisle grouping + “already have” toggles
- Cook Mode: step-by-step UI with timers and progress
- Monetization via RevenueCat: free tier (limited imports) → Pro unlocks unlimited + premium AI features
How we built it
- Flutter for fast cross-platform UI and tight iteration on cook-mode UX
- FastAPI backend for recipe extraction + AI features (nutrition, substitutions)
- Azure OpenAI (GPT-4o) for turning messy links into clean structured data
- Firecrawl for reliably pulling readable page content from URLs
- Offline-first storage with SQLite locally, plus PostgreSQL cloud sync for cross-device continuity
RevenueCat for subscriptions and entitlement gating (Free vs Pro) Challenges we faced
Links are chaotic (different formats, paywalls, video pages): we used robust content fetching + an AI schema, and always provided Review & Edit as a fallback.
Ingredient normalization (duplicates, units, spelling): we stored raw text but added a lightweight normalization layer to merge grocery items without breaking user trust.
Latency vs delight: we optimized for a “feels instant” import by caching and keeping the UI responsive during extraction.
Subscription gating without ruining the experience: we designed Pro to feel like a natural upgrade (unlimited imports + premium enhancements), not a blocker.
What we learned
- The best “AI product” isn’t just a model call—it’s UX + fallbacks + trust.
- Offline-first design makes cooking flows feel reliable (even in bad connectivity).
- Winning hackathon demos come from one magical moment (paste link → recipe card) plus one execution payoff (grocery → cook mode).
Log in or sign up for Devpost to join the conversation.