Inspiration
Like millions of home cooks, I had 50+ saved recipe videos scattered across TikTok, Instagram, YouTube, and random bookmarks — but I barely cooked any of them. The gap between "that looks amazing" and "it's actually on the table" was enormous.
I first built InstaRecipes, a personal tool to download Instagram Reels from a WhatsApp message and extract the recipe, some months ago. When Eitan Bernath's Shipyard brief dropped — describing this exact problem for his audience of millions — the path was clear: evolve my personal tool into a full mobile experience any home cook could use.
What it does
RecipeToDinner closes the gap between recipe inspiration and execution:
- Native Share Extension — See a recipe on TikTok or Instagram? Hit the iOS Share button, tap RecipeToDinner, and it's imported automatically. No copy-pasting, no app-switching. This is the zero-friction moment that makes saving recipes effortless.
- Multi-Source Import with Creator Attribution — Paste a link from TikTok, YouTube, Instagram, or any recipe website. AI downloads the content, transcribes the audio, and extracts a complete structured recipe in seconds. Every recipe preserves the original creator's name, avatar, and platform — you always know where inspiration came from.
- Trending from Creators — The home screen features a curated section with real recipes from creators like Eitan Bernath, complete with author profiles. New users get instant value from day one.
- Smart Library — All imported recipes in one organized, searchable place. No more digging through Instagram saves.
- Weekly Meal Planner — Assign recipes to your weekly calendar. Know exactly what you're cooking each day.
- Intelligent Shopping List with Voice Input — AI aggregates ingredients across recipes ("2 eggs" + "3 eggs" = "5 eggs"), categorizes by aisle (Produce, Dairy, Meat, Pantry), and gives you one optimized list. Need to add something? Hold the mic button and say "avocados, limes, and cilantro" — the AI transcribes, parses, and categorizes your voice into the list. No typing needed.
How I built it
I leveraged my existing InstaRecipes backend (Python/Flask) and extended it into a full-stack mobile product:
Backend (Python/Flask on Railway):
- Strategy pattern with specialized downloaders: Apify API for Instagram, yt-dlp for TikTok/YouTube, BeautifulSoup for web scraping
- Audio extraction with MoviePy/FFmpeg → transcription via OpenAI Whisper API
- GPT-4.1 with Structured Outputs for recipe extraction and shopping list aggregation
- Voice-to-shopping-list pipeline: record audio → Whisper transcription → GPT-4.1 item extraction & categorization
- Supabase (PostgreSQL) for data storage, Cloudinary for images
Mobile App (React Native + Expo SDK 54):
- Expo Router with file-based routing and 5-tab navigation (Home, Plan, Saved, Shop, Profile)
- expo-share-intent for native iOS Share Extension — import recipes directly from any app
- Supabase Auth with Google Sign-In
- RevenueCat SDK for subscriptions (Annual $99.99/yr with 3-day trial, Monthly $9.99/mo)
Challenges I ran into
- Native Share Extension — Getting
expo-share-intentto properly handle URLs shared from TikTok and Instagram required careful configuration of activation rules and app group IDs - Recipe parsing quality — Early GPT prompts returned inconsistent JSON. Switching to OpenAI's Structured Outputs with
strict: trueand explicit JSON schemas solved this completely - Voice input for shopping — Building the hold-to-record → transcribe → parse → categorize pipeline required chaining Expo Audio recording, Whisper API transcription, and GPT-4.1 structured extraction in a seamless UX
- Shopping list aggregation — Combining "2 cups flour" + "100g flour" across recipes requires unit normalization. GPT-4.1 handles this intelligently as part of the aggregation prompt
What I learned
- Share Extensions are a killer feature — Removing the need to copy/paste URLs makes the import flow 10x more natural
- OpenAI's Structured Outputs feature is a game-changer for building reliable AI pipelines — no more parsing flaky JSON
- Voice input feels magical when the AI chain behind it (record → transcribe → extract → categorize) is fast enough
- RevenueCat makes subscription management surprisingly straightforward, especially the identity sync with existing auth systems
- Building for a real creator's audience (vs. abstract users) sharpens every product decision
What's next for RecipeToDinner
- Nutritional info per recipe (calories, macros)
- Grocery delivery integration (Instacart, Amazon Fresh)
- Collaborative shopping lists for families
- More creator collections
- Android launch and web companion app
Built With
- apify
- beautiful-soup
- cloudinary
- docker
- expo-share-intent
- expo.io
- flask
- gpt-4.1
- openai
- postgresql
- python
- railway
- react-native
- revenuecat
- supabase
- typescript
- whisper
- yt-dlp
Log in or sign up for Devpost to join the conversation.