Inspiration
I kept saving video and website recipes and never cooking them. Hundreds of saved links I'd never open again. The problem isn't finding recipes, it's actually using them. Every existing app extracts the recipe but strips away the video, which is the whole reason you saved it. Eitan Bernath's brief nailed it: people are inundated with recipes they want to make but never do. I wanted to build the app that closes that gap.
What I built
SnapCook is a hybrid app (built with Capacitor, currently focused on iOS) that turns any TikTok, YouTube, or Instagram recipe video into a structured recipe card with ingredients, steps, cook time, and difficulty, while keeping the original video embedded right there. One tap adds everything to a grocery list sorted by aisle.
The AI extraction pipeline uses video transcripts, descriptions, and metadata to produce structured recipes across TikTok, YouTube, Instagram, and web URLs. You can even snap a photo of a cookbook page. When the AI isn't confident, it saves whatever it can and lets you fill in the rest. No dead ends.
Monetization runs on RevenueCat: 5 free snaps per month, Pro ($4.99/mo or $29.99/yr) for unlimited. The paywall only shows up when you actually hit a limit. A gamification layer (XP, levels, 9 badges including "Eitan Fan") keeps people coming back and actually cooking.
How I built it
- Frontend: Vue 3 + TypeScript, Tailwind CSS 4, shadcn-vue
- Mobile: Capacitor 8 with native share intent (share directly from TikTok into SnapCook)
- Backend: Supabase Edge Functions orchestrating Claude AI, SocialKit, Spoonacular, and YouTube Data API
- Payments: RevenueCat Purchases SDK with native paywall, entitlement checking, and customer center
- Design: Custom "soft neobrutalist" system with thick borders, hard offset shadows, and a warm terracotta/sage palette
Challenges
The extraction pipeline. TikTok's API is restrictive, so I built a four-level fallback chain with timeouts per service. Getting Claude to consistently output valid JSON from messy video transcripts took careful prompt engineering. The transcript might say "add a pinch of this" while the description has the actual ingredient list, so the prompt cross-references both sources to get the best result.
Built With
- claude-api
- expo.io
- revenuecat-sdk
- supabase
- typescript
- vue
Log in or sign up for Devpost to join the conversation.