DietAisle
Weekly meals planned to your macros — priced at the supermarkets near you.
Loading…
{{ auth.mode==='signup' ? 'Create your account' : 'Welcome back' }}
{{ auth.mode==='signup' ? 'Your plans, prices and product database live in your account, on every device.' : 'Sign in to open your meal plans.' }}
{{ auth.info }}
Privacy policy
DietAisle
{{ activePreset.name }} · {{ dynamicSubtitle }}
{{ currentDayMacros.p }}
P
{{ currentDayMacros.f }}
F
{{ currentDayMacros.c }}
C
Batch-Cook 3-Day Shop

Batch-cook Sunday · Use before next shop · Prices are estimates only

Scan a Receipt
Works with Lidl, Aldi, Tesco — any store. Prices and macros saved automatically.
Receipt preview
Reading receipt with AI…
{{ scanError }}
Tap the button above to scan a Lidl Plus receipt, a Tesco receipt, or any supermarket receipt.

Prices and nutritional data are saved to your personal database to improve future shopping lists.
Scan a Barcode
At the store? Scan a product barcode with your camera, or type the number — instant nutrition lookup via Open Food Facts.
{{ barcode.product.name }}
{{ barcode.product.brand || 'Unknown brand' }} · {{ barcode.product.barcode }}
{{ barcode.product.calories }} kcal {{ barcode.product.protein ?? '?' }}g P {{ barcode.product.fat ?? '?' }}g F {{ barcode.product.carbs ?? '?' }}g C per 100g
Recently paid by other UK shoppers Open Prices
{{ cp.store }} {{ cp.date }} £{{ cp.price.toFixed(2) }}
Generate a Meal Plan
{{ aiStream }}
{{ aiError }}
{{ dashGreeting }}{{ auth.user ? ', ' + (auth.user.email.split('@')[0]) : '' }}
{{ todayLabel }} · {{ activePreset.name }}
Synced to cloud{{ sync.lastSync ? ' · last sync ' + sync.lastSync : '' }} Local only — data lives on this device
Today's macros vs goals
{{ m.label }} {{ m.value }}{{ m.unit }} / {{ m.target }}{{ m.unit }}
No meals planned for today — pick a day tab to see its meals.
{{ essTotal }}
Weekly shop (essentials)
{{ productDb.length }}
Products in your database
{{ realPriceCount }}
Real prices from receipts
{{ aiPlan?.recommendation?.primary_store?.toUpperCase() || '—' }}
{{ aiPlan ? 'Cheapest store this week' : 'Generate an AI plan to compare' }}
Quick actions
{{ auth.mode==='signup' ? 'Create your account' : 'Welcome back' }}
{{ auth.mode==='signup' ? 'Sync your meal plans, product database and prices across all your devices.' : 'Sign in to load your synced meal plans and product database.' }}
Cloud accounts aren't configured yet on this deployment.
{{ auth.info }}
Your account
Email{{ auth.user.email }}
Cloud sync● Active
Last synced{{ sync.lastSync || 'just now' }}
Products backed up{{ productDb.length }}
{{ auth.info }}
Your meal plans and product database live in your account and sync to every device you sign in on. This device keeps a copy so the app works offline. No data is ever shared or sold.
Cheapest for your list · near you
{{ cap(s.brand) }} {{ s.basketCost!==null?'£'+s.basketCost.toFixed(2):'—' }} {{ fmtDist(s.dist) }}
Cheapest for your list · near you
Finding nearby supermarkets…
Cheapest for your list · near you
Uses your location once to find nearby supermarkets — sent to OpenStreetMap's Overpass API, never stored or tracked.
{{ locationError }}
{{ activePreset.name }}
Nothing in the trolley yet
Scan a receipt or generate an AI plan to fill your shopping list.
Essentials only
{{ essTotal }}
With all optionals
{{ allTotal }}

Real weekly cost once pantry stocked · ON protein bought separately

Restock Guide
How often to reorder — items also show this on the list above
{{ r.label }}
Guide is empty — reset to bring the defaults back.
Times marked ×N are calculated from your receipts — the typical gap between buying that item again (scans under 3 days apart count as one shop; more scans = sharper times). Unmarked times are starting estimates; ✎ sets your own and the app stops adjusting it.
{{ toast.msg }}