Inspiration

I kept running into the same problem: see an amazing recipe on TikTok or Instagram, save it, and then never make it. A week later I'm staring at the fridge with no idea what to cook while hundreds of saved recipes collect dust.

Every recipe app I tried felt like a graveyard for good intentions. They were great at saving but terrible at helping you actually cook. None of them answered the question I really had: "What should I make tonight that people will actually enjoy?"

When I saw Eitan's brief asking for an app that helps people "actually cook what they've been meaning to make," it clicked. That's exactly the problem I wanted to solve.

What it does

Dishd is a recipe app built around actually cooking, not just collecting.

Save from anywhere - Paste a link from TikTok, YouTube, Instagram, or any recipe website. AI extracts the full recipe automatically. You can also upload a screenshot or type it manually.

Track what you cook - Log every meal with ratings, notes, and photos. Build a real cooking history instead of a wish list.

Remember who loved what - Tag who ate each meal and who loved it. Next time you're cooking for someone, you know exactly what hit.

Shopping list from recipes - One tap generates a categorized grocery list. No more forgetting ingredients.

How I built it

Native iOS with SwiftUI and Swift 6. I wanted it to feel fast and premium, not like a web app in disguise.

The backend runs on Supabase for auth, Postgres database, file storage, and edge functions for the AI recipe parsing. For the AI layer, I'm using Claude to extract recipes from messy web pages and power the Sous Chef assistant.

One decision I'm proud of: offline-first architecture. Recipes are stored locally in SQLite and sync to the cloud in the background. You're in the kitchen with flour on your hands and spotty wifi, the app should still work. That took extra effort but it's worth it.

RevenueCat handles subscriptions. Free users get 20 recipe imports per month. Pro unlocks unlimited imports, the AI Sous Chef, and full analytics.

Challenges I ran into

Recipe parsing is chaos. Every website structures recipes differently. Some use JSON-LD schema (thank god), most don't. I ended up building a multi-step extraction: try schema first, fall back to OpenGraph, then use Claude to parse the raw HTML if needed. Video content was even harder. TikTok and YouTube required fetching transcripts and extracting recipes from spoken instructions.

Offline sync conflicts. When you edit a recipe offline and the cloud version changed, what wins? I implemented a "last write wins" strategy with timestamps, but edge cases kept popping up. Still ironing out a few.

Keeping it simple. It's tempting to add every feature. Meal planning! Social sharing! Nutrition tracking! I had to keep cutting back to focus on the core: save fast, cook more, remember what worked.

Accomplishments that I'm proud of

The recipe capture flow feels magic. Paste a TikTok link and watch the full recipe appear in seconds, ingredients separated, steps numbered, photo pulled. That moment when it just works is satisfying every time.

The "who loved what" feature is something I haven't seen in other recipe apps. It turns Dishd from a recipe box into a cooking memory. You're not just saving recipes, you're building a history of what actually worked for the people you cook for.

And the offline-first architecture. It's invisible when it works, but it means the app is actually useful in the kitchen where wifi is flaky and your hands are covered in whatever you're making.

What I learned

Building for a real use case (Eitan's audience) instead of an abstract "user" made every decision easier. When I asked "would someone scrolling TikTok at midnight want this?" the answer was usually obvious.

Also learned that AI extraction is powerful but not magic. You still need good fallbacks and a way for users to edit when it gets things wrong. The preview/edit screen before saving was a late addition that made a huge difference.

What's next for Dishd

  • Cook Mode - Step-by-step instructions with built-in timers
  • Share Cards - Beautiful recipe snapshots to share back to social
  • Home Screen Widget - "Tonight's Pick" based on your history
  • Apple Sign-In - Lower friction onboarding

The foundation is solid. Now it's about polish and the features that turn a good app into one people recommend to friends.

Built With

  • claude-api-(anthropic)
  • claude-code
  • cursor
  • ios-18
  • revenuecat
  • sqlite
  • supabase-auth
  • supabase-database-(postgresql)
  • supabase-edge-functions
  • supabase-storage
  • swift-6
  • swiftui
  • xcode
Share this project:

Updates