Product Strategy

"Meal tracking made easy and guilt-free." — emealia meets you where you are.

Product vision

WhatAI nutrition companion — free-text input, honest ranges, calm bands, one forward-looking tip
What it's notCalorie counter · barcode scanner · diet app · judgment tool
Core postureIntuition over arithmetic. Eat by feel, not by math. Companion, not referee.
FormatMobile-first PWA — installable from browser, no App Store cut
MarketsGermany (primary launch) + USA (simultaneous). All copy EN + DE. GDPR applies.
CIDark mode only. No light mode planned.

Three core promises (equal weight)

Personas

emealia is not only for weight change. The product must feel useful for people who simply want to eat more consciously, understand their day better, or support a specific health context without turning food into homework.

PersonaPrimary needProduct implication
Healthier eatingEat healthier without a strict diet or weight targetNon-weight goals are first-class; Today bands can mirror nutrients the user cares about
Weight-aware userLose, gain, or maintain weight calmlyWeight tracking and energy targets are available, but never define all progress
Busy beginnerCooks little and knows little nutrition theoryPlain-language coaching, low-friction logging, no dense setup
Dialed-in userAlready knows macros/micros and wants lighter trackingCustom bands, details page, history, and export matter
Medically motivatedDoctor/nutritionist reason to watch nutrientsCareful non-medical copy; no treatment advice; clear data export

The 6 non-negotiables

Pricing

MarketTrialMonthlyAnnualSave
DE30 free AI estimates · all features · no card€5.99€39.99−44%
US30 free AI estimates · all features · no card$6.99$44.99−46%
Trial model (superseded 2026-07-07)

The trial is credit-based, not time-based: usage_accounts.trial_credits_granted defaults to 30 (admin-configurable via [usage] trial_credits in backend/config/admin.toml, currently 30), consumed one-per-AI-estimate and checked by UsageMeter.check_entitlement(). Earlier drafts of this doc (and the CLAUDE.md root context) describe a 168-hour clock-based trial — that model was replaced by the credit model per the 2026-07-07 market analysis and is what SqlAlchemyUsageMeter actually implements (trial_credits_used < trial_credits_granted); the 168 h wording is stale and should be corrected at the source.

Business model

LayerWhatWhen
Base planFull core loop — logging, bands, AI parsing, daily tips, history, statsLaunch
emealia PlusAdd-on subscription: recipe suggestions, deep micros, photo logging, advanced stats + export, "level up a meal"Post D7 ≥ 30%
Micro-transactionsNot used — Stripe fixed fee (~25–30¢) kills economics at €1; recurring add-on winsNever
Rule

Instrument premium-candidate features through UsageMeter from day 1 (free, invisible). Introduce Plus once base loop retains D7 ≥ 30%.

KPIs & targets

MetricM3M6M12
D7 retention≥25%≥30%≥38%
Meals / active user / day≥1.5≥1.8≥2.0
Trial → paid≥10%≥12%≥15%
AI correction rate<40%<30%<25%
Daily tip open rate≥15%≥20%≥25%

North star: weekly active loggers with ≥4 logging days/week.

Weight tracking remains a core optional surface, not a niche add-on: even users whose selected goals are healthier eating may want to check weight occasionally. It must be available from Profile and statistics/history, but it is never the North Star and never the only definition of progress.

Kill conditions

ConditionAction
D7 <20% after 200 usersStop acquisition, redesign core loop
AI correction rate >50%Fix parsing + portion defaults before scaling
Daily tip opens <15%Coaching cadence / copy not landing → rework
AI cost >€0.08/user/monthAudit all AI calls — something is leaking

Human gates (founder must clear)

G1 — Band comprehension:  5 testers shown dark-mode daily view. ≥3/5 must understand bands unaided. Required before Epic 2 UI is finalized.
G2 — AI calibration:  30 real meals (15 DE / 15 US) parsed; correction rate must be <40% before scaling acquisition.
AI never merges its own PR — human review checkbox always required.

Build phases

PhaseFocusGate
0 · FoundationMonorepo, BCE skeleton, DB, CI, deploy
11 · Design tokensTokens, logo, dark-mode CI
1 · Pre-signup demoHardcoded demo — value before registration
2 · Today viewCore daily bands UIG1 band comprehension
3 · LoggingAI meal parsing, validation, fallbackG2 calibration
6 · Registration after demoValue before registration; real usage starts after registration
7 · AuthGoogle Sign-In (OAuth Authorization Code) via AuthBoundary, session cookie via SessionCodec, registration, session management
4/5 · History + StatsHistory, statistics, weight tracking
8 · Trial + PaymentUsageMeter enforcement, Stripe checkout
9/10 · Profile + MicrosProfile, targets, micronutrients
12 · Meal history contextKeyword match, repeat logging, bounded history-informed suggestions
13/14/15 · Launch blockersGDPR, Security, Observability — run from week 1All green before launch

Onboarding goals (canonical set — prototype feedback 2026-07-03)

The one required onboarding input. Multi-select from: understand eating habits · improve nutrient intake · healthier lifestyle · more energy · build muscle · lose weight · gain weight · watch specific nutrients · medically motivated — plus optional free text.

Coaching

Coaching uses selected goals, cooking level, nutrition knowledge level, dietary preferences/free-text context, and logged meals. The AI API receives only the needed bounded context and returns one forward-looking daily suggestion plus every-other-day review suggestions. Meal history may inform recommendations up to a defined recency/volume limit, but the product must not promise that the AI learns over time or becomes a defensibility claim.

Marketing

Core message (all channels): "Meal tracking made easy and guilt-free." · "Eat by feel, not by math." · "emealia meets you where you are."

Open founder actions

Set Anthropic monthly spend cap in Console — do this before any key is used in prod
Sign Anthropic DPA before first EU user data is sent to the API (Epic 13.1)
Add Impressum §5 DDG — legal entity details required for German market
Create AWS account eu-central-1, set up Budget Alarm + Cost Anomaly Detection from day 1
Create Google Cloud OAuth client (already implemented, story 7.1a — GoogleAuthBoundary) — a real client id/secret is still needed for beta; Apple Sign-In (7.1b) and any Auth0 EU tenant are not built and not required
Add ANTHROPIC_API_KEY to GitHub repo secrets (enables AI reviewer bots)
Run G1 band comprehension test (5 testers) before Epic 2 finalization
Run G2 AI calibration (30 real meals) before scaling acquisition
iubenda privacy policy + ToS (GDPR + CCPA) — Epic 13.4
Medical / general-wellness disclaimer (legal counsel, H10) — position emealia as a general-wellness / informational product, not a medical device and not medical advice (no disease claims → outside EU MDR / German HWG). Passive notice at registration + inline notice on the free-text preferences/context field (medical info kept as context, never acted on as advice). Feeds a versioned medical_safety AI-prompt snippet. Research + draft EN/DE copy: emealia-app/docs/research/medical-disclaimer.md; story 13.14. Counsel confirms wording, Art. 9 lawful basis, and whether an explicit checkbox is needed.