FOODIE — A recipe journal with AI extraction.
Cooking is how I relax — but my recipes lived in screenshots, notes and five different chats. FOODIE fixes that: share anything into it and get a structured, cookable card back.
Recipes live everywhere except where you cook: screenshots, saved Reels, notes, five different chats. When it's dinner time, nothing is findable and nothing is structured.
One inbox for food. Share anything into FOODIE and it comes back a clean, cookable card — then a weekly planner and a smart grocery list grow out of what you actually saved.
- Save from Instagram, TikTok, YouTube, any link — or a photo of a cookbook page
- A cheap classifier decides what's worth extracting before Gemini structures it
- Weekly planner and a grocery list that merges quantities and groups by category
- Cooking mode: big type, tap to advance, screen stays awake
- A built-in chat that knows your recipes — ask it anything about what you've saved
- Seven languages — save in any of them, read it back in yours
Under the hood FOODIE is an Expo app on a Supabase backend with an AI ingestion pipeline in the middle. Anything you share in — a URL, a Reel, a photo of a cookbook page — walks the same path: triage, extraction, validation, and lands in the journal as a typed, structured recipe.
Client: React Native on Expo, TypeScript end to end. The share extension is the main front door: it accepts links, videos and photos from any app. The journal is optimistic-first with a local cache, so browsing and editing feel instant even offline; cooking mode keeps the screen awake and steps through a recipe with big-type gestures.
AI pipeline: Shared content hits a Supabase Edge Function. A cheap classifier model triages first — is there even a recipe here? — so the expensive call only runs when it's worth it. Then Gemini 2.5 does structured extraction against a strict recipe schema (ingredients with units, steps, timings), and the result is schema-validated before it's allowed to touch the database. Photos take an OCR path; Reels, TikToks and YouTube go through scrape/oEmbed first.
Backend & data: Supabase Postgres with row-level security per user; images in Supabase Storage. Recipes are stored in their source language and translated on read — save a recipe in Italian, read it in Ukrainian, seven locales supported. The grocery list merges quantities across recipes and normalizes units server-side.
Ship & measure: RevenueCat runs subscriptions and paywall experiments. PostHog tracks activation and retention funnels; Sentry watches release health. Builds and over-the-air updates go through EAS.
React Native / Expo · TypeScript · Supabase · Gemini 2.5 · RevenueCat · PostHog / Sentry









