RevenueCat Shipyard 2026
A mobile app that imports recipes from social media (TikTok, Instagram, YouTube), then guides you through cooking with an AI assistant that learns your preferences and adapts recipes to your style.
Recipe Management
- Import recipes from TikTok, Instagram, YouTube using AI extraction
- Multi-source support (websites, manual entry, social platforms)
- "My Version" - save personalized recipe adaptations
AI Cooking Assistant
- Real-time help while cooking (substitutions, troubleshooting, techniques)
- Fully hands-free voice interaction
- RAG-powered responses using cooking knowledge base + user history
- Intent-based routing to optimal AI model
Cooking Experience
- Step-by-step voice-guided navigation
- Multiple concurrent timers with voice alerts
- Automatic learning detection (captures your preferences)
- Session memory that improves over time
Modes
- Casual Cook - simple cooking with AI help
- Chef Mode - full power with version history, learnings, analytics (subscription)
Smart model routing automatically selects the optimal AI based on query complexity:
| Model | Use Cases | Cost | Traffic |
|---|---|---|---|
| Gemini Flash 1.5 | Simple questions, timing, preferences | $0.10/$0.30 per 1M tokens | ~70% |
| GPT-4o Mini | Substitutions, techniques, scaling | $0.15/$0.60 per 1M tokens | ~25% |
| Claude Sonnet 4 | Complex troubleshooting, multi-step help | $3.00/$15.00 per 1M tokens | ~5% |
Result: 97% cost reduction vs Claude-only ($0.00066/msg vs $0.02/msg)
Architecture Components:
- OpenRouter gateway with automatic fallback to direct Claude
- RAG system: recipe knowledge base + user memory
- OpenAI embeddings with vector similarity search
See docs/ai-optimization-results.md for performance data.
- Frontend: React Native / Expo SDK 54
- Backend: Supabase (Postgres, Auth, Edge Functions, Realtime)
- AI Models: Claude Sonnet 4, GPT-4o Mini, Gemini Flash 1.5 (via OpenRouter)
- Voice: OpenAI TTS HD + Whisper API
- Subscriptions: RevenueCat
- State: Zustand + React Query
- Scraping: Supadata.ai (social media recipe extraction)
- Node.js 18+
- pnpm
- Expo CLI
- Supabase project
# Clone the repo
git clone https://github.com/mateodaza/chez.git
cd chez
# Install dependencies
pnpm install
# Copy environment variables
cp .env.example .env
# Edit .env with your Supabase credentials# .env
EXPO_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-keyEdge Functions require additional secrets (set via Supabase dashboard):
ANTHROPIC_API_KEY- Claude APIOPENAI_API_KEY- Embeddings, TTS, WhisperSUPADATA_API_KEY- Video transcript extraction
# Start Expo dev server
pnpm start
# Run on iOS simulator
pnpm ios
# Run on Android emulator
pnpm androidMigrations are in supabase/migrations/. Apply them to your Supabase project:
supabase db pushsupabase functions deploy import-recipe
supabase functions deploy cook-chat-v2
supabase functions deploy text-to-speech
supabase functions deploy whisper
supabase functions deploy embed-memoryEnvironment Secrets (set via Supabase dashboard):
supabase secrets set ANTHROPIC_API_KEY=sk-ant-...
supabase secrets set OPENAI_API_KEY=sk-...
supabase secrets set OPENROUTER_API_KEY=sk-or-v1-...
supabase secrets set SUPADATA_API_KEY=...chez/
├── app/ # Expo Router screens
│ ├── (auth)/ # Login/signup
│ ├── (tabs)/ # Main tab navigation
│ ├── cook/[id].tsx # Cook mode screen
│ └── recipe/[id].tsx # Recipe detail
├── components/ # Reusable components
├── lib/ # Utilities
│ ├── supabase/ # Supabase client
│ ├── extraction/ # Platform detection
│ └── auth/ # Auth helpers
├── hooks/ # Custom React hooks
├── stores/ # Zustand stores
├── types/ # TypeScript types
└── supabase/
├── migrations/ # Database migrations
├── functions/ # Edge Functions
└── seed/ # Seeding scripts
| Function | Purpose | AI Model(s) |
|---|---|---|
cook-chat-v2 |
Cooking Assistant with smart AI routing & RAG | Gemini/GPT-4o-mini/Claude |
import-recipe |
Extract recipes from video URLs | GPT-4 Turbo (→ Gemini Flash pending) |
text-to-speech |
OpenAI TTS HD for voice responses | OpenAI TTS |
whisper |
Speech-to-text transcription | OpenAI Whisper |
embed-memory |
Generate embeddings for user memories | OpenAI text-embedding-3-small |
pnpm start # Start Expo dev server
pnpm lint # Run ESLint
pnpm lint:fix # Fix ESLint issues
pnpm format # Format with Prettier
pnpm typecheck # TypeScript check
pnpm validate # Run all checks# Build for iOS TestFlight
pnpm build:ios:local