What emealia is, who it is for, what it refuses to do, and how the core loop actually runs. This is the layer everything else answers to — when a market opportunity and a non-negotiable conflict, the non-negotiable wins.
For most people, eating is meant to be intuitive. Modern diet culture turned it into math.
Calorie counters, macro spreadsheets, good-food/bad-food, weigh-everything regimes — these built strict behavioural patterns around eating that mostly do not serve the people using them. They create guilt, they are unsustainable, and they chase a single optimal number that was never meant for everyone. People quit, then feel like they failed.
emealia's answer is not a better calorie counter. It is a different posture toward food.
These three promises are equal in the product. They are not equal in the market any more. Easy is now table stakes owned by MyFitnessPal (post-Cal AI) and Apple. The hero hierarchy on every public surface must lead with guilt-free and follow with easy — not because ease got worse, but because it stopped being a differentiator.
These are constitutional. Every one of them will, at some point, be argued against on the grounds that "everyone else has it". That argument is the signal to check this list, not to revise it.
| # | Rule | What it forbids in practice |
|---|---|---|
| 1 | No red in nutrition feedback. Ever. | Warm amber is the maximum urgency signal. A band fill identifies which nutrient and never changes with status. Regression-locked by story 2.4: 23 backend and 23 frontend assertions sweep the whole band-state space and a copy deny-list proves no state reads as a failure. |
| 2 | No numbers on the main daily view. | Bands plus qualitative labels only. Numbers are permitted — required, even — on meal detail and All-details, which is the "one tap away" transparency surface. An optional number-hiding setting removes them there too. |
| 3 | Free trial, not freemium, in the base product. | One plan, everything in it, forever. No feature gated after purchase, no nutrient behind a wall. The optional Plus layer may only ever add new surfaces and may never gate the core loop or nutrient data. |
| 4 | AI free-text logging is the only primary input. | No barcode scanner as primary — deliberately, permanently. No food database to license or maintain. No photo input at launch. Trust comes from honest confidence levels and ranges, not from a database claim emealia would lose. |
| 5 | Value before registration. | The pre-signup demo is hardcoded data: zero AI calls, zero cost, no account. A visitor sees the product working before being asked for anything. |
| 6 | No nutrition state may look like a failure. | An empty day is absence, never a verdict. Not logging is not a signal and never triggers a message. Trial exhaustion is warm, not punitive. A failed estimate is a calm line, never an error wall. |
Every mainstream competitor fails several of these, checkably. That is the basis of the guilt-design comparison rubric — the review ecosystem has no column for "does this make you feel bad", so emealia is currently scored only on axes it loses by design. The response is not to chase those lists. It is to create the axis.
emealia is not only for weight change. It must feel useful to someone who simply wants to understand their day better, without turning food into homework.
| Persona | Primary need | Product implication |
|---|---|---|
| Healthier eating | Eat better without a diet or a weight target | Non-weight goals are first-class. Today's bands mirror the nutrients this user cares about, not a calorie budget. The weight card collapses when goals are not weight-related. |
| Weight-aware | Lose, gain or maintain calmly | Weight tracking and energy targets exist, but never define all progress and never appear as a countdown. |
| Busy beginner | Cooks little, knows little nutrition theory | Plain-language coaching, low-friction logging, no dense setup. Coaching level adapts copy, not ambition. |
| Dialled-in | Already knows macros and wants lighter tracking | Custom band sets (up to 10), All-details with 32 nutrients, history, statistics, export. |
| Medically motivated | A doctor or nutritionist reason to watch nutrients | Careful non-medical copy, no treatment advice, clean export for the next appointment. Medical context typed by the user is kept as gentle context and never acted on as instruction. |
Feedback of 2026-07-01: goals were too narrowly weight-shaped. "Healthier eating" existed as a label but not as a function — it still produced only an energy direction, with no band emphasis and no coaching of its own. The canonical goal set now is a multi-select of understand eating habits · improve nutrient intake · healthier lifestyle · more energy · build muscle · lose weight · gain weight · watch specific nutrients · medically motivated, plus free text. There is deliberately no "maintain weight" option: if neither lose nor gain is chosen, maintenance is certain and may be inferred for AI messaging, never asked. Lose and gain are the only hard contradiction; everything else combines freely.
| # | Screen | What it is |
|---|---|---|
| 1 | Pre-signup demo | Hardcoded data, zero AI, zero cost. Value before registration, per non-negotiable #5. |
| 2 | Today | Configurable bands (5 default, 10 max) plus the meal list (≤5 shown, "more" → History). Today ↔ This-week tabs. Header: icon aligned with the wordmark, "Welcome back, {name}" in Newsreader italic beneath, profile icon right — no day/date/time line. Log button always reachable, never covering content. |
| 3 | Meal detail (stored) | A saved meal. Merged ingredients (≤5 dominating plus an "all assumptions" toggle), the meal's own honest ranges, edit and confirm. |
| 4 | Log a meal | "Use your own words." Date picker (today / yesterday / date; backdate ≤7 days, no future). Meal type — never marked optional, unpicked persists as other. Favourites entry preserves date and type. Growing 3→6-line input. |
| 4b | Meal log detail (pre-save) | The draft preview. One card per segment when a text described several occasions; pixel-identical to the single-meal preview when it described one. "I estimated assuming…" in Newsreader italic. Re-estimate once, then a defined disabled state. Save log →. |
| 5 | History | Calendar with day-level dots, search, favourites. Tap a day to see that day's Today view. |
| 6 | Statistics | Daily, weekly and monthly trends from daily_summaries and period_summaries. Band distribution. No red, ever. |
| 7 | Settings / profile | Identity, goals, body params, targets, dietary preferences and free-text context, weight, preferences (incl. number-hiding), subscription, security, data (export and erasure), legal. |
| 8 | Trial / paywall | Credits spent. Warm, not punitive. Annual default, monthly toggle, prices always from the backend prices object — never hardcoded. |
| 9 | Auth | Social sign-in. Registration carries the passive medical-disclaimer notice beside the ToS and privacy acceptance. After login: straight to Today, no welcome-back screen. |
Written down as strategy, not left as a backlog gap. Each of these will be proposed by someone; each contradicts a non-negotiable; and the list itself is a differentiator worth publishing in a lighter form.
| Not building | Because |
|---|---|
| A goal-weight progress bar or "X kg to go" | A number as a verdict with a failure state built in. Contradicts #1, #2 and #6 simultaneously. A smoothed trend line with no target line is the range-compatible equivalent. |
| Earned calories from activity | "You earned 340 extra calories" is the food-as-currency loop that makes MyFitnessPal painful for exactly the people emealia is built for. Activity shifts the ideal zone slightly; it is never a balance to spend. |
| Mood → food causality | "You eat more when stressed" is a causal claim about the user's own weakness, much harder to shrug off than a number. It is Noom's core mechanic. Mood is logged as calm context and modulates tone only. |
| Adaptive energy targets from weight trend | Genuinely good, and range-compatible in principle — but it requires consistent weighing, which conflicts with both the low-friction promise and the ED-safety posture. Recorded as a decision, not an omission. |
| GLP-1 medication features | A medical-adjacent claim surface, in conflict with the general-wellness positioning, in a market where capital wins. As competitors chase GLP-1 users, the non-medicated majority is being under-served — which is precisely emealia's persona set. |
| A barcode scanner or a licensed food database | Non-negotiable #4. It is a race against a 20-million-item crowdsourced database with a documented 27% error rate — losing on their axis while abandoning our own. |
| Streaks, badges, leaderboards | Artificial pressure and unhealthy competition with oneself. Documented in the ED literature the strategy cites. |
| Apple Health / Health Connect sync | Not a choice — HealthKit and Health Connect are native-only platform APIs with no web equivalent. Shipping it means a native wrapper, App Store review, and the 15–30% cut the PWA strategy exists to avoid. Say why publicly: "we're a web app, so your health data never leaves the browser for a platform account" is a better story than an apology. |
| Semantic caching via third-party embeddings | Proposed in the July analysis for 40–60% COGS savings. Rejected on privacy grounds: it means a second processor seeing meal text, against the single-DPA posture that is itself a purchase argument in Germany. |
| Device fingerprinting | Proposed as trial anti-abuse. Rejected — GDPR and consent conflict. Social-only auth plus the credit cap do the same job cleanly. |
Ethically required and, separately, a real differentiator. Grounded in Levinson et al. 2017 (N=105 with a diagnosed eating disorder; ~75% used MyFitnessPal, of whom 73.1% reported it contributed to their disorder and 30.3% "very much").
| Do | Don't |
|---|---|
| Calm, warm, peer — "looks like a balanced day so far" | Clinical — "you need 20 g more protein" |
| Forward-looking — "tomorrow you could…" | Backward judgment — "you ate too much" |
| Honest about ranges — "roughly 400–550 kcal" | False precision — "423 kcal" |
| Bilingual parity — the same warmth in EN and DE | Direct translation without German adaptation |
| Treat foods named neutrally — "pizza night" | Moralising — "indulgence", "cheat meal" |
Never: you failed · cheat meal · bad food · you must · doctor-approved · an exact calorie verdict on Today. Full microcopy standards and the medical-disclaimer wording live in Design.