Grocery receipts in. A live pantry and AI recipes out.
SmartList reads US grocery receipts, keeps a live pantry with estimated expiry dates, warns you before food goes off and turns what's about to expire into recipes. We took over a working Android prototype, cut the scope to something shippable and engineered it for iOS and Android.
From sprawling vision to shippable product
The early vision included neighbourhood food sharing, generic server-side OCR and a two-currency wallet. We wrote the requirements spec and a 30-day plan with a definition of done for every item, then locked scope to a US-only product with one credit wallet and a merchant-template engine for the 20 biggest chains.
The recognition engine
Instead of one generic parser, each chain's receipt format is a versioned template with four layers:
| Layer | What it does |
|---|---|
| Fingerprint | Identifies the store from header and footer patterns |
| Geometry | Where name, quantity and price columns sit |
| Grammar | Skip lines, tax flags, weight lines, department codes |
| Dictionary | Store abbreviations — “WHL MLK” → Whole Milk |
A Python OCR-mining script trained templates for Walmart, Kroger, Albertsons, Target, Costco, Aldi, Publix, Trader Joe's, Whole Foods and 11 more from a corpus of real receipts. The scan screen tries the template first and falls back to the original parser unchanged.
Security and the credit economy
- No API key ships in the app — every AI call goes through Cloud Functions with keys held as secrets.
- The app can never write a credit balance; only the server can, in a transaction that also writes the ledger.
- Firestore and Storage rules lock every user's data to their own account — proven by emulator tests.
- Recipes cost 5 credits, charged atomically before generation with an automatic refund on failure.
- Recipe photos are cached and fuzzy-matched (Sørensen–Dice, 0.82 threshold) to cut AI image costs.
Results so far
- Onboarding, Home and Pantry run on a physical iPhone, including release builds.
- iOS parity without forking: only document capture needed a native VisionKit adapter.
- Toolchain traps found and pinned: Android cmdline-tools, JDK version, same-volume builds.
Stack
Status
Pre-launch. Store templates, security rules and the recipe backend are built and tested locally; scan, cook, wallet and settings screens are built and moving to device testing ahead of the App Store and Play Store.
Need something like this?
Tell us what your team does by hand today. We'll scope it into jobs and a price.