Inspiration

We knew that millions of recipe videos get saved on Instagram and TikTok. But do you know what happens next? Absolutely nothing! They rot in our saved folders like the vegetables we bought with good intentions.

We watched Eitan's brief and felt personally attacked. He's calling out the exact same problem we've rage-quit over a hundred times: "I saw this amazing recipe... and then I forgot I saved it, didn't have the ingredients, and ordered pizza instead."

Our goal was simple: What if your phone could bridge the gap between "ooh that looks good" and "holy crap I actually made that"?

For the personality and tone of the app, we drew inspiration from Duolingo's unhinged owl energy. Because if a green bird can guilt-trip millions into learning Spanish, surely a sassy carrot could shame us into using the tomatoes before they become science experiments. Thus, Spike was born, our Pickle Rick-inspired Carrot!

An AI sous chef who doesn't just help you cook, but also judges you for not cooking.

What it does

Nosh turns saved recipes into cooked meals through full automation. After a long day, you can open the app and start cooking in under 30 seconds.

🪦 Kill the Recipe Graveyard See a recipe anywhere (TikTok, Instagram, YouTube, a food blog) and share it to Nosh using the iOS share sheet. Don't even leave your scrolling session. The AI extracts the full recipe in the background: title, ingredients with exact quantities, step-by-step instructions, nutrition info, and dietary tags. You can also snap a photo of a cookbook page, dictate a recipe by voice, or type it manually.

⚡ "Cook Now": Zero-Decision Cooking Don't want to browse or decide? Tap Cook Now, and Nosh recommends a recipe that matches your pantry inventory, dietary preferences, skill level, and even which ingredients are about to expire. One tap, one recommendation, start cooking.

📅 AI Meal Planning with Calorie Tracking Set your daily calorie target, choose how many meals you want (breakfast, lunch, dinner, snack), pick your dietary restrictions and cuisine preferences, and Nosh generates a complete weekly meal plan. It pulls from your saved recipes and prioritizes what's already in your pantry. Every meal shows a full nutritional breakdown; no separate macro tracking app needed.

🛒 Smart Grocery Lists Every meal plan auto-generates a grocery list organized by store aisle, with quantities intelligently aggregated across recipes. A full-screen shopping mode makes in-store checkout smooth: swipe through aisles, check off items, and move purchased ingredients directly into your pantry with one tap.

🧊 Pantry Intelligence Track everything in your fridge, freezer, and pantry with freshness monitoring and expiration alerts. Add items by scanning a receipt, photographing your fridge, voice, or manual entry. When something's about to go bad, Spike suggests a recipe to use it up.

🗣️ Hands-Free Cooking with Spike When it's time to cook, enter full-screen cooking mode with step-by-step guidance and built-in timers. Say "Hey Spike" to navigate steps, ask questions ("Can I substitute yogurt for sour cream?"), set timers, or mark steps complete. Entirely hands-free with on-device voice recognition and neural text-to-speech. Spike isn't a generic assistant. He has personality, opinions, and won't let you slack off.

🏆 Gamification & Community Every recipe you cook earns XP with streak multipliers. Maintain a cooking streak, unlock tiered achievements (Bronze through Diamond), climb the global leaderboard, and share photos of your creations to the community feed. Spike celebrates your wins and challenges you when you've been inactive. The community feed transforms cooking from a solo chore into a shared, competitive experience.

How we built it

Two people. One developer, one designer. Four weeks. 110+ commits. Everything you see is real and working.

Frontend: React Native (Expo SDK 52) in strict TypeScript with Expo Router for file-based navigation. 30+ screens, all functional. No placeholders.

Backend: FastAPI (Python 3.14) with 79 endpoints across 8 routers, deployed on Google Cloud Run with auto-scaling from 0 to 100 instances. Google Cloud Tasks handles async job processing with OIDC authentication.

Database: Supabase PostgreSQL with Row Level Security on every user-data table. Supabase Auth for Google Sign-In, Apple Sign-In, and email/password.

AI: Google Vertex AI (Gemini 2.0 Flash) with a 6-model failover chain across 4 GCP regions and exponential backoff for 99.9% uptime. Powers recipe extraction (OCR, URL scraping via recipe-scrapers for 600+ sites, video extraction via yt-dlp), Spike's voice assistant, smart recommendations, meal planning, and pantry scanning.

Voice: On-device STT (expo-speech-recognition) and TTS (expo-speech with iOS neural voices). Runs entirely on-device with hardware echo cancellation. Zero cloud cost per voice interaction.

Monetization: RevenueCat SDK fully integrated with 7 contextual paywall touchpoints: onboarding paywall with exit offering, credit gates on AI actions, save limit gates, premium feature locks, credit top-up IAPs (50-credit consumable packs), and winback modals with retention stats. Subscriptions (monthly + annual), consumable credits, one-time creator packs, and creator bundles. All purchasable. All working.

iOS Share Extension: Custom Swift ShareViewController (544-line Expo config plugin) that intercepts URLs from any app, communicates via App Groups, and triggers async backend processing through Cloud Tasks. Users never leave their current app.

Infrastructure cost: ~$35/month for 100 users. Break-even at 3-4 premium subscribers.

Challenges we ran into

Supabase went down on submission morning. On the day of the deadline, Supabase had an outage affecting the US region. Our entire app depends on it for auth, database, everything. Without it, we couldn't record the demo video, couldn't test, couldn't submit. We spun up a new Supabase project in a different region, migrated the entire schema, reconfigured auth providers, updated all environment variables, and redeployed to Cloud Run. All while the clock was ticking. There was a moment where we genuinely thought the submission wasn't going to happen. It did.

Share extension reliability. Getting the iOS share extension to work across TikTok, Instagram, YouTube, and Safari required handling wildly different URL formats and auth token sharing between the extension and main app via App Groups. We went through several iterations of the async processing pipeline to handle edge cases: expired tokens, failed extractions, and queued jobs.

Hands-free voice in a cooking environment. Building Spike's voice assistant meant dealing with echo cancellation (the mic picking up Spike's own voice), TTS latency on first use (solved by pre-warming with a silent utterance), and a robust state machine (Sleeping → Active → Listening → Processing → Response) that handles interruptions and barge-in cleanly. Getting "Hey Spike" wake detection to feel natural took significant iteration.

Credit economy balancing. Designing a credit system that feels generous enough to engage free users while creating meaningful upgrade pressure is delicate. We iterated extensively on the daily free allocation (5 credits), monthly premium allocation (200 credits), and individual action costs to find the sweet spot where free users hit natural paywall moments without feeling punished.

Gamification without gimmickry. Making XP, streaks, and achievements feel motivating rather than condescending for an adult audience required careful design. The streak bonus formula rewards consistency without making it feel like you have to cook, and Spike's personality threads the needle between encouraging and nagging.

Doing it all as a two-person team. No backend team. No QA. No PM. One developer building 79 endpoints, 30+ screens, a share extension, a voice assistant, gamification, a community feed, and RevenueCat integration from scratch. One designer creating the entire UX, Spike's 25+ mood illustrations, and the onboarding flow. Four weeks. The number of nights we spent staring at Xcode errors and Figma frames at 3 am is not something we'll forget anytime soon.

Accomplishments that we're proud of

Spike has a genuine personality. He's not a generic chatbot. He's a sassy carrot with opinions, 25+ mood-based illustrations, and contextual reactions throughout the entire app. Users remember him, and he's the reason people open the app even when they're not cooking.

The automation pipeline works end-to-end. Recipe capture → meal plan → grocery list → pantry management → cooking mode → gamification reward. A complete closed loop. The entire journey from "I saved a recipe" to "I cooked it and earned XP" happens with minimal manual effort.

Hybrid monetization is live and purchasable. Four revenue streams (subscriptions, consumable credits, creator packs, creator bundles) processing through RevenueCat with 7 contextual touchpoints. This isn't a theoretical pricing model. It's built, integrated, and live on TestFlight.

The share sheet workflow is frictionless. A user scrolling TikTok can share a recipe to Nosh and keep scrolling without any interruption. AI handles everything in the background. This is the single feature that kills the saved recipe graveyard.

We survived a production outage on deadline day. Supabase went down, our entire backend was unreachable, and we migrated to a new region under pressure and shipped. Sometimes the hardest part of shipping is just shipping.

This is a two-person team. Everything you see, every screen, every endpoint, every animation, every illustration, was built by one developer and one designer in four weeks. We're genuinely proud of what we pulled off.

What we learned

Automation beats organization. Our earliest prototypes focused on recipe organization: folders, tags, search. Users didn't care. What they wanted was to open the app and be told what to cook tonight. The shift from "organize your recipes" to "we'll handle everything, just start cooking" was the single biggest product insight.

Gamification is retention infrastructure, not decoration. We initially treated streaks and achievements as nice-to-haves. But the daily check-in behavior they create transforms Nosh from a utility into a habit. The community feed compounds this: when you see others cooking, you feel the pull to cook too.

Credit systems require generosity. Our first credit allocation was too stingy. Users felt punished for using the app's best features. The current balance (5 free daily, 200 monthly premium) lets free users experience genuine value while creating natural upgrade moments.

Gen Z treats the share sheet like a filing system. The iOS share extension turned out to be significantly more important than URL paste or photo scan. This generation's instinct is to share content to apps, not switch contexts. Nosh had to meet them where they already are: inside TikTok, mid-scroll.

Vendor dependencies will test you at the worst possible moment. Supabase going down on submission morning was a brutal reminder. Multi-region resilience isn't just a nice-to-have. It's now at the top of our production roadmap.

Two people can ship a production app if they're stubborn enough. We didn't have the luxury of specialized roles. The developer wrote backend, frontend, native modules, and DevOps. The designer created UX, illustrations, and learned to vibe-code along the way. It was back-breaking. But everything in this app is real, functional, and on TestFlight right now.

What's next for Nosh

Immediate (Months 1-2): Blurred AI recipe previews for free users to increase conversion. Grocery list export with store delivery integrations (Instacart, Walmart). Push notification win-back sequences for inactive users. Per-plan win-back segmentation with different offers for annual vs. monthly churners.

Growth (Months 3-6): Creator onboarding pipeline for Eitan's network with revenue sharing. Social recipe sharing via deep links to drive organic installs. Seasonal and trending recipe bundles. Android launch. A/B testing across all 7 paywall entry points to optimize conversion.

Scale (Months 6-12): Family and household plans with shared grocery lists and meal plans. Kitchen hardware integrations (smart displays, timers). Expanded AI capabilities, including dietary adaptation and personalized nutrition coaching. Internationalization for non-English food markets.

The long-term vision: Nosh becomes the operating system for home cooking. The single app where food inspiration, planning, shopping, cooking, and community all live. Every recipe you save actually gets cooked. The graveyard is closed for good.

Built With

  • apple-sign-in
  • expo-sdk-52
  • expo-speech
  • expo-speech-recognition
  • fastapi
  • gemini-2.0-flash
  • google-cloud-run
  • google-cloud-tasks
  • google-sign-in
  • google-vertex-ai
  • python
  • rapidfuzz
  • react-native
  • revenuecat
  • supabase-postgresql
  • typescript
  • yt-dlp
Share this project:

Updates