Valahigh  ·  Portfolio  ·  Inspora

Food that knows where you're from.

Inspora was a cultural-food wellness app for diaspora communities: 993 heritage dishes with honest, USDA-grounded nutrition, and a feel loop that stayed quiet until it had proof. Built and shipped solo.

Mainstream nutrition apps either could not find the food I grew up on, or flagged it as bad against a Eurocentric baseline. Log jollof, egusi or pounded yam and you got nothing, or a scolding. Inspora said the opposite: your grandmother's cooking is legible, respected, and trackable without shame.

It shipped as an iOS app through TestFlight, a progressive web app, and an Android package, on a hand-curated corpus of 993 dishes and 1,348 ingredients spanning African, Caribbean, Latin American, South Asian and East and Southeast Asian kitchens, plus a general tier so nobody had to leave the app to log a sandwich.

The through-line was honesty. Every number could be traced to a source or was labelled as an estimate. Nothing was invented to fill a gap, and the pattern engine refused to speak until it had enough evidence to be right.

Ten cards, one continuous take. A single fingerprint bar opens from a dot, becomes the corpus, a dish's macro split, a connector in the feel loop, then settles under the closing line. Open the live demo
Eleven slides: the problem, the corpus, the fingerprint, the feel loop, and the three craft decisions behind it. Use the deck's own controls, or open it full screen. Open full screen

The corpus

993 dishes and 1,348 ingredients, hand-curated and priced ingredient by ingredient against USDA records. African was the largest single region. Recipes carried real gram weights, so a portion was a computation rather than a guess.

Where a dish could only be matched to one whole-dish reference entry rather than a full recipe, it said so. That distinction mattered more than the number.

The fingerprint

Instead of food photography, every dish got a three-colour bar showing where its calories actually came from: protein, carbohydrate, fat. Readable at a glance, honest at any size, and impossible to make a dish look like something it isn't.

It was also a refusal. Stock photos of other people's food, restyled to look aspirational, is how most nutrition apps flatten a culture. A fingerprint cannot flatter or shame.

The feel loop

Log a meal, then log how you felt. The engine looked for associations between the two, and would not surface one until it had at least three days with a food and three days without it. Then it graded the effect slight, noticeable or strong, and showed its own sample size.

"Slightly lower evening energy on days with late heavy meals. Based on 4 days with, 6 days without." The receipt was the product.

A nutrition app is a machine for making confident claims about someone's body. That obligates you. Three of the decisions I am most glad about were all corrections.

An estimate was making an accuracy claim. 614 of the 993 dishes were priced from a single reference entry, but the interface read "1 of 1 ingredients matched to USDA data." Technically true, and deeply misleading: it dressed a ballpark as a verified match. It now reads as a rough estimate for the dish as a whole. The governing rule became abstain rather than guess, which is also why the recipe importer prices only what it can source and lists the rest as not counted, with the reason.

Unknown is not zero. A bug coerced missing sugar values to zero, which invented "0 g of sugar" for 102 dishes whose sugar was genuinely unknown. A fabricated zero is worse than a blank, because everything downstream treats it as a measurement. The fix preserved the difference between unknown and actually none.

The review had to be adversarial. Before the last build, a hostile review pass surfaced 18 findings, several of them regressions introduced by the previous round of fixes. One would have taught the app that a half portion was your normal one, silently doubling every later log. Another was a fix that would itself have double-recorded meals. All were caught and verified against live data before shipping.

The live demo   A static, backend-free slice of the real product: 25 heritage dishes with their fingerprints. No account, no tracking.

The case-study deck   The same eleven slides, full-screen and standalone.

Built with React, TypeScript, Capacitor and Postgres. Nutrition anchored to USDA FoodData Central. Estimates are labelled as estimates. Not medical advice.