Inspiration
Cooking is one of the most rewarding skills, but it’s also one of the easiest to abandon when the process gets frustrating. Recipes live everywhere—videos, webpages, screenshots, PDFs, and cookbooks—and even when you find something you love, you still have to figure out ingredients, remember what you already have, shop for what’s missing, and then actually cook it. CookIt started as a way to reduce that friction and make “I want to cook that” turn into “I cooked it” more often.
What it does
CookIt is a personal kitchen assistant that helps users capture recipes, stay organized, shop smarter, and cook with confidence.
- Create recipes from files, video URLs, webpages, or custom entry
- Organize recipes into cookbooks and bookmark favorites
- Scan and add pantry items, track what’s available, and plan around it
- Create and manage shopping lists
- Store allergies to support safer meal decisions
- Use AI Chat for cooking help, meal planning, and managing app data (recipes, pantry, shopping list, cookbooks)
- Start a Cooking Session for guided cooking
- Run a Live Cooking Session powered by Gemini for interactive cook-along support
How we built it
- Flutter (Dart) for the mobile app: UI, recipe library, pantry, shopping list, cookbooks, sessions, and AI features.
- Firebase as the primary database for user content (recipes, cookbooks, pantry items, allergies, bookmarks, shopping lists).
- Dart Shelf backend hosted on Google Cloud:
- Extracts recipes from video URLs
- Serves the Explore feed
- Handles RevenueCat webhook events and updates Firebase so the app reflects billing changes.
- RevenueCat for monetization:
- Subscriptions: Pro and Gold
- Credit packs: Basic / Standard / Ultimate / Turbo
- Credits meter AI Chat (per message) and Live Cooking Sessions (per minute).
- Gemini models for AI:
- 5 chat models with different credit costs
- Live cooking uses Gemini 2.5 Live with time-based credit usage
Challenges we ran into
- Recipe extraction reliability: videos and webpages vary a lot in structure, so normalizing output into a consistent recipe format took iteration.
- Keeping the “cooking system” connected: pantry, shopping list, recipes, and sessions all depend on each other, so data modeling had to be clean to avoid conflicts.
- Credits + subscriptions working together: combining monthly subscription credits, credit packs, and model-gated access required careful handling so the UI stayed consistent.
- Real-time billing updates: upgrades, downgrades, expirations, and renewals needed to reflect quickly inside the app, which required a solid webhook-to-Firebase pipeline.
- Metering live sessions: charging per minute meant stable runtime tracking and consistent credit deductions.
Accomplishments that we're proud of
- Built an end-to-end product where users can go from recipe discovery → recipe saved → ingredients tracked → shopping planned → cooking guided.
- Implemented both AI Chat and an interactive Live Cooking Session with credit metering.
- Shipped complete monetization with RevenueCat subscriptions + Virtual Currency, including backend webhooks that update the UI through Firebase.
- Delivered a flexible recipe creation flow that supports multiple sources (file, video, webpage, custom).
What we learned
- The biggest improvements in cooking apps come from reducing friction in the “in-between” moments—capturing recipes, remembering ingredients, and planning shopping—not just presenting steps.
- Webhooks and event-driven updates are key for keeping monetization state accurate and predictable in the UI.
- Usage-based AI benefits from clear metering rules (per message / per minute) and consistent model access boundaries.
- Designing the data layer early (recipes/pantry/shopping/cookbooks) makes adding AI actions much easier later.
What's next for CookIt
- Notifications for shopping reminders and pantry replenishment prompts
- Live session voice selection
- A public recipe sharing system where users can publish and browse community recipes
- An AI assistant on every page for faster, contextual actions
- Localization
- A setting to choose the language the AI responds in
Log in or sign up for Devpost to join the conversation.