← Back
Sporta — voice-first grocery lists, sorted by your supermarket
Problem
Writing a grocery list is typing on a phone with your hands busy, and shopping it means zig-zagging the store because the list is in the order you thought of things — not the order the departments come at you.
Role
Built solo, end to end: database schema, AI parsing pipeline, mobile app and store builds.
Technical choices
- On-device speech-to-text in Italian: dictation works in the kitchen, no audio leaves the phone.
- AI parsing (Claude API via Supabase Edge Functions): free-form speech becomes structured items with quantities and indicative prices.
- Department-aware sorting: the list re-orders itself to match the layout of your supermarket chain, so shopping mode follows the aisles.
- Shared lists, no accounts: a list travels as a link or a QR code; whoever opens it joins and edits, and every row shows who added it. Capability-link model with membership-based Row-Level Security.
- Receipts into prices: photograph the receipt — or feed it a PDF or several photos for the long ones — and Claude vision turns it into per-item prices, reviewed line by line before saving.
- Diet plans into shopping: a nutritionist's plan (PDF, photos or text) becomes a weekly menu and the lists to buy it. The plan itself never leaves the device.
- Offline that holds: dictation, edits and check-offs work with no signal — a deterministic parser splits speech into items, and departments fill themselves in when the network returns.
- Loyalty cards: store your supermarket cards in the app and show the barcode at checkout.
- Flutter + Supabase: one codebase for iOS and Android, PostgreSQL with Row-Level Security behind it.
Outcome
In testing on real grocery runs: dictate the list at home, share it with whoever shops with you, pick the store, and check items off department by department with a running total — one app from "we're out of butter" to the checkout.
Site and privacy policy: sporta.family.