Context / history / why we built this

Open your fridge right now. Go ahead! Somewhere in the back there's a bag of spinach you swore you'd eat and leftovers you're genuinely scared to open. Don't laugh.. you do this every single week.

Americans throw out over 77 billion pounds of food a year, and the #1 culprit isn't farms or restaurants — it's us, in our own kitchens. Thats ~$2,400 per family straight into the trash, and enough wasted food to feed entire countries. not because people are careless, but because nobody on Earth actually knows what's in their fridge or when it's about to die.

So what do people use to fix this? A whiteboard on the fridge door. Sticky notes. Their "memory" (0% success rate lmao). Or a $4,000 samsung smart fridge with cameras inside that still can't tell you your milk goes bad on thursday.

And the apps? Inventory apps that make you manually type in every single item and scan barcodes one by one like you're working the register at a grocery store. nobody (and we mean NOBODY) is still doing that on day 4. They're slow, they're tedious, and they fight against real life instead of fitting into it.

In other words, they have a shitty ux that serves as a barrier to adoption.

So we asked: what if you could fill your entire fridge with one photo, and have it tell you exactly what to cook before anything spoils?

What it does

Crisper turns one photo of your grocery receipt into a fridge that manages itself.

No, this isn't:

  • Typing "2x organic gala apples, exp ????" into a form by hand
  • Scanning 40 barcodes one at a time
  • Some "smart" fridge you have to buy a whole new kitchen appliance for

What we built is dead simple:

Snap your receipt → Crisper's AI reads every cryptic line on it → Builds your entire digital fridge in seconds → Predicts the exact expiry date of everything → Warns you before it goes bad → And hands you recipes built around whatever's dying first.

Waste becomes dinner.

Ask it to make sense of a receipt nobody could ever read? It still works. And the whole thing runs offline-first; your data never leaves your phone.

Our favorite part of Crisper

Picture this. your receipt says "GV SHRP CHDR", "ORG BNLS CHKN BRST", "KRO 2% RDCD". wtf does that mean lmao? No human can read that. but you point Crisper at it, and it instantly goes: great value sharp cheddar — expires in ~3 weeks. organic boneless chicken breast — use within 2 days. kroger 2% reduced-fat milk — good til next thursday.

It decodes the unreadable, fills your fridge, AND knows the shelf life of each item - all from a crumpled paper receipt. and with mass refine, you don't even do it one at a time - point it at a whole table of groceries or a full receipt and it detects and refines everything at once. imagine that.

How we built it

native ios + swiftui with a liquid glass UI, fully offline-first, with AI plugged in through your own key stored in the keychain. a multimodal model reads the raw receipt photo, an extraction pass pulls out the line items, and a separate expiry refiner reasons about each food's real-world shelf life instead of guessing. recipes get generated around whatever's closest to expiring.

Challenges we ran into

Receipts are chaos. abbreviations, no expiry info, inconsistent formatting, store-specific shorthand, 40 items crammed onto one slip of paper. the hard part was never "read the text" .. it was turning "GV WHP TOPPING" into "great value whipped topping, expires ~30 days" reliably, at scale, from a single blurry photo. mass refine forced us to detect and refine many items in one shot without the model losing track of which line was which.

What we learned

Separating extraction (pull the raw items off the receipt) from refinement (reason about what each thing actually is and when it expires) kept everything accurate and predictable — cramming both into one prompt made the model sloppy. and treating offline-first as a rule instead of a nice-to-have changed the whole architecture: the app has to be fully useful with zero connection, and AI only makes it better, never required

What's next for Crisper

Barcode + receipt fusion for even better matches, household fridges you can share with family, smarter expiry predictions per store and per item, push notifications the day before something spoils, and a public beta.

Scan once. waste nothing.

Built With

  • anthropic-claude-api
  • coretext
  • cryptokit
  • foundationdb
  • keychain
  • openai-api
  • photosui
  • swift
  • swiftdata
  • swiftui
  • uikit
  • urlsession
  • usernotifications
Share this project:

Updates