Inspiration

Eitan’s ideas for the recipe app really resonated with us — not just figuring out what to cook with what’s already in your fridge, but also how to go from a random idea, grocery shopping, and to actually making that meal in your kitchen. We’d wanted to build something like this for a while, and the one-month challenge felt like the perfect chance to push ourselves and ship something we’re genuinely proud of.

What it does

Mandarin lets you import recipes from basically anywhere — TikTok, Instagram, YouTube, websites, or just photos. The app extracts ingredients and steps, then helps you instantly turn that into a grocery list.

It also keeps track of your pantry, so you can quickly see what you can cook with what you already have instead of guessing or forgetting what’s at home.

How we built it

Mandarin is split into two main parts: an iOS app and a lightweight AI-powered backend.
The iOS app was built with Swift and SwiftUI, with SwiftData handling recipes, grocery lists, and pantry state. For things like receipt scanning and text recognition, we used Apple’s Vision framework combined with some custom parsing logic.

For recipe imports, we built a Python FastAPI backend running on Modal. It pulls content from websites, videos, and images, transcribes audio with Whisper when needed, and then uses OpenAI models to convert everything into clean, structured recipe data the app can use.

Challenges we ran into

One of the biggest challenges was making everything feel simple and natural. Recipes, grocery lists, and pantry tracking are usually separate experiences, so combining them into one smooth flow required a lot of iteration.

Technically, importing video recipes was tricky, especially when important details only exist in spoken audio rather than text or captions.

Accomplishments that we're proud of

We’re proud that the app works as a complete, usable loop rather than just a prototype. Importing messy content like videos or photos and turning that into something you can actually cook from feels like a big win.

We’re also really happy with how grocery and pantry updates connect and sync automatically, which makes the experience feel surprisingly seamless.

What we learned

One interesting thing we learned was how powerful audio transcription can be. Many recipe videos contain critical information only in speech, so transcribing audio with AI and turning that into structured data unlocked a lot of value.

We also learned that designing a clear user experience is often harder than solving purely technical problems.

What's next for Mandarin: Recipe Organizer & Smart Grocery List

Next, we want to improve import speed and overall performance to make the experience feel instant. We also plan to cover more recipe formats and edge cases.

Longer term, we’d love to add smarter AI features, like suggesting meals based on pantry items, better personalization for dietary preferences (vegan, allergies, dislikes), and deeper grocery workflows, including store and delivery integrations.

Built With

  • avfoundation
  • avkit
  • beautifulsoup4
  • combine
  • edamam-food-database-api
  • fastapi
  • ffmpeg
  • github-actions
  • gpt-4.1
  • httpx
  • ios-18+
  • iproyal-proxy
  • lxml
  • modal-(serverless-with-gpu-t4)
  • openai
  • openai-whisper
  • photosui
  • pillow
  • pydantic
  • pytest
  • python
  • pytorch
  • revenuecat
  • revenuecatui
  • safariservices
  • swift
  • swift-concurrency-(async/await)
  • swift-package-manager
  • swiftdata
  • swiftui
  • uikit
  • uniformtypeidentifiers
  • vision
  • whisper
  • yt-dlp
Share this project:

Updates

Submission history