-
-
Grotally: prices go up, you stay ahead.
-
Snap a receipt and AI reads every line. Your personal inflation, not the national average.
-
What went up and by how much. The same product, cheaper at another store.
-
A shopping list that knows what you rebuy. Ask your receipts with on-device AI.
-
Home Screen widgets. Free with 5 scans a month, Pro when you need it.
-
App icon (1024 × 1024).
-
Screenshot without device frame (1179 × 2556).
Your groceries went up. Now you decide what to do about it.
Everyone knows groceries keep getting more expensive. But the official inflation rate is an average — it doesn't tell you that your olive oil is up 23% while your rice actually got cheaper. That information exists. It's printed on every receipt you throw away.
Grotally turns those receipts into control: snap a photo, and AI extracts every product, price, quantity and discount. From there, the app shows you what's rising, where the same product is cheaper, and how your budget is doing — so you can decide where to save.
What it does
- Scan any receipt — from the camera or your photo library. AI parses receipts in 8 languages and any currency, from any supermarket; receipts in another currency are converted to yours. No typing, no manual entry.
- Your personal inflation — computed from your own purchases, weighted by what you actually spend. Not the CPI average: your number, and whether it came from higher prices or from buying more. Pro breaks it down product by product: what went up, by how much, and since when.
- Store comparison — every product remembers what it cost at each store, with its price history, so you can see where the same item is cheaper. Scan the barcode and the match across stores becomes exact.
- A shopping list that thinks — it checks items off when you scan the receipt, shows where each item was cheapest, and suggests what you usually rebuy when it's due.
- Ask your receipts — natural-language questions ("how much have I spent on coffee this year?") answered on-device with Apple's Foundation Models. Your questions and answers never leave the phone.
- Your month at a glance — spending, a 6-month trend, a month-end projection and a budget that warns you at 80% and 100%. Home Screen widgets for your month, your last receipt and a one-tap scanner, and gentle local reminders (a monthly summary, a nudge when it's usually shopping day) with quiet hours.
How I built it
Solo dev, built in public. SwiftUI + SwiftData on iOS 26, with a backend on Supabase Edge Functions that does the AI parsing (Claude), protected by Apple App Attest so only real devices can spend my inference budget. Localized in 8 languages: English, Spanish, Catalan, French, German, Italian, Portuguese and Dutch.
Monetization runs on RevenueCat. Free: 5 scans a month and the last 30 days of history, with your personal inflation number, the budget and the shopping list. Grotally Pro ($4.99/month or $29.99/year) unlocks unlimited scans, the full history, the product-by-product breakdown, store comparison and price charts, Ask your receipts, smart list suggestions, the widgets and CSV/PDF export. The paywall is a RevenueCat Paywall served from the current offering, and Settings uses RevenueCat's Customer Center for managing the subscription, restores and refunds.
My favorite engineering decision: every receipt ships with its own answer key — the printed total. A cheap model reads the receipt first; the app checks the math (items + tax vs. total) and only escalates to a stronger model when it doesn't reconcile. Most scans never need the expensive pass. That one check is the difference between an AI feature and an AI bill.
Challenges I hit (and shipped through)
Sales tax nearly doubled my US costs. My reconciliation ignored tax, so every US receipt "failed" by exactly the tax amount and silently escalated to a pricier model. Caught it by running a corpus of real US receipts through the production pipeline before launch.
Protecting a paid AI endpoint with no accounts. Every scan is a paid model call, so an open endpoint is someone else's free API — but there are no accounts to authenticate against, and not having them is the whole point of the product. The app attests itself instead: the backend verifies an App Attest assertion on every single request and rate-limits by device key, so only real iPhones running my build can spend my budget. The trade-off is real and I took it on purpose: scanning cannot work in the Simulator, which cost me a QA harness to test receipts at all.
Telling the same product apart from its packaging. Price history only works if "Coca-Cola 2L" this month is the same row as "Coca-Cola 2L" last month — and is NOT the same row as the 33cl can. Receipts print the same item differently every week, and OCR adds its own noise. Matching is two-track: identical significant words, or a normalized Levenshtein distance above 0.82 so "cofe notural" still finds "cafe natural" — with a size guardrail that refuses to merge two products whose declared sizes conflict, even when every word matches. Getting that guardrail wrong doesn't show an error; it quietly invents a 6x price rise.
Localization is more than translating strings. My app once showed US users coffee at $29.88/kg, and suggested questions about a Spanish supermarket to users in Texas. Units, date formats, tax handling — that's where an app actually feels foreign. All fixed, in all 8 languages.
Privacy without friction. No accounts, no profiles: your history lives in SwiftData on your device. The receipt photo is analyzed on my server and scan logs are deleted after 30 days; the Q&A runs entirely on-device.
What's next
Getting 1.0.0 into people's hands and learning from real receipts — the matching rules and the price alerts only get good with other people's supermarkets in them. On the list: use the barcode you can already attach to a product to cross-match the same item across chains automatically, price alerts when something in your basket jumps, shared household lists, and referrals.
Built With
- anthropic
- app-attest
- claude
- deno
- foundation-models
- ios
- next.js
- postgresql
- revenuecat
- supabase
- swift
- swiftdata
- swiftui
- typescript
- vercel
- visionkit
Log in or sign up for Devpost to join the conversation.