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
Log in or sign up for Devpost to join the conversation.