Long story short
From 40 interviews to a tested ML product
01 Discovery
Product leadSynthesized ~40 interviews into the PRD and one thesis: people judge the finished plate, not single ingredients.
02 Architecture
System designerDesigned the full system end to end, from the user's recipe input to the optimizer.
03 Execution
ML engineerBuilt the ingredient-role classifier (~89% accurate) and the whole-dish optimizer that balances nutrition, flavor and structure.
04 Delivery & validation
Team leadReviewed the team's code and finalized the UX. In a 24-person study, 79% preferred our redesigns and nutrition accuracy reached 93%.
Core question
How might we help people eat healthier without giving up the food they love?
Speaking to users
Forty conversations shaped what we built
As a four-person team we each spoke with at least ten people — about 40 conversations — around five common questions about what makes people start, stop, and trust a change to their food.
Healthy eating means starting over
Most apps and sites our interviewees had seen offered new “healthy” recipes. None offered to redesign the dish they already cook and love.
Health goals vary by the day
Some days a cook wants a minor tweak, other days maximum optimization. A fixed, one-size-fits-all recipe fails both.
Unexplained swaps feel like a gamble
A substitution with no rationale feels risky. Users need a clear reason for every ingredient change.
If it stops tasting like the dish, they stop cooking it
Nearly everyone raised it unprompted. The real test isn't whether one ingredient got healthier; it's whether the finished meal still holds together and tastes like the dish they love.
Who we built for
Everyone else tells them to cook something new
Most health apps demand you abandon your favorite meals. We segmented the market across two dimensions—health goals and recipe loyalty—to find the users who want to optimize, not compromise.
The Comfort-Food Optimizer
Want to eat better without giving up their white sauce pasta.
★ UnservedThe Planner
Happy to log macros and follow a new meal plan.
Served by trackersThe Content Cook
Happy with what they already cook.
Nothing to fixThe Explorer
Looking for something new to cook tonight.
Served by recipe appsIdeal user
The Comfort-Food Optimizer
A home cook who wants to eat healthier without giving up the dishes they already love. When an app asks them to start over with unfamiliar food, they quit the app, not the dish.
What they need
- Keep the dishes they already cook
- Goals that can flex day to day
- A clear reason for every change
- Food that still tastes like the original
Market research
Nobody redesigns the dish you already love
We examined about a dozen popular food apps, then scored the five closest against what users told us they need, using one request: make my white sauce pasta healthier.
| Tool | What happens to your pasta | Upload your recipe | Explains every swap | Set your nutrition goals | Tastes like the original | Healthier or lighter by day | Hits your goals |
|---|---|---|---|---|---|---|---|
SwapHealthy Swap guides | Lists healthier swaps for cream and butter. You rework the recipe yourself. | ○ | ● | ○ | ◐ | ○ | ○ |
MyFitnessPal Tracker | Imports it and logs the calories. Leaves the fix to you. | ● | ○ | ● | — | ○ | ○ |
FoodiePrep AI meal planner | Imports it, then shrinks your portion to fit your daily target. | ● | ◐ | ● | ● | ○ | ● |
NutriStyle Clinical meal plans | Replaces it with a plan built from its own recipe database. | ○ | ○ | ● | ○ | ○ | ● |
ChatGPT General AI | Writes a “healthy alfredo” on request. Numbers are estimates. | ● | ● | ● | ◐ | ● | ◐ |
| Twinplate | Same pasta, reworked to your targets, with a reason for every change. | ● | ● | ● | ● | ● | ● |
● Yes◐ Partly○ No— Doesn't change the dishIllustrative example, based on each product’s public features.
Planners hit your goal by changing what you eat. Swap guides leave the work to you. General AI can rewrite the recipe, but can’t promise it still tastes like yours. Twinplate keeps the dish and still hits the goal.
Opportunities for the MVP
Four features, each closing a gap users and the market left open
Bring Your Own Dish
Users: healthy eating means starting over.Market: tools that import a recipe only log it or shrink the portion; planners replace it.
How might we make a dish healthier without replacing it?
Paste a recipe or a link. Twinplate converts it to grams and tags each ingredient by its job.
The Goal Dial
Users: goals change day to day.Market: trackers and planners hold one fixed daily target.
How might we let people choose how far to push a dish, day to day?
Nutrition targets plus a Preservation ↔ Optimization slider.
Why-This-Change Notes
Users: unexplained swaps feel like a gamble.Market: swap guides explain swaps in general, not against your own targets.
How might we make every change easy to trust?
A plain-language reason on every edit, tagged nutrition, flavor or structure.
Structure Check
Users: if it stops tasting like the dish, they stop cooking it.Market: swaps and AI rewrites change ingredients without checking what each one does.
How might we protect what makes the dish work?
Every ingredient's job stays filled; changes that strip a binder or fat are penalized.
Success metrics
What success had to look like
North star
Redesigns that hit nutrition targets and still feel like the same dish.
Guardrail
No ingredient role shifts more than 15% of the dish.
Guardrail
A full redesign in about two seconds.
Product walkthrough
The product, screen by screen
Each screen answers one pain point, shown with the real baked ziti redesign.
Bring Your Own Dish
Paste the recipe text, or drop in a link to a blog or a cooking video. Twinplate converts every quantity to grams and tags what each ingredient does.
Connects to pain point 01
The Goal Dial
Set nutrition targets per serving, then choose how far to push them, from keep the original to hit the targets.
Connects to pain point 02
Why-This-Change Notes
Every edit shows what it was, what it became, and a plain-language reason, tagged nutrition, flavor or structure.
Connects to pain point 03
Structure Check
A role-by-role check that every ingredient's job is still filled, so the dish still holds together before you cook it.
Connects to pain point 04
See it in action
Key decisions
The calls that shaped Twinplate
One decision at each step of the flow, from the recipe that goes in to the redesign that comes out.
01
Fix the dish, not the diet
Bring your own dish · Pain point 01
We chose
To fix the dish you already cook.
Instead of
Building a meal planner or recipe recommender.
Why
Interviews showed the core pain is starting over with unfamiliar food, and the planner space is already crowded.
Trade-off
The output can only be as good as the recipe the user brings.
02
Sliders over gram targets
The goal dial · Pain point 02
We chose
Dynamic sliders with smart presets.
Instead of
Typing exact gram targets or picking one fixed "healthy" mode.
Why
People rarely know their numbers, goals shift day to day, and 17 of 24 participants actively used the slider.
Trade-off
More controls on screen, plus a sigmoid curve to keep outputs from jumping at the extremes.
03
Whole dish over single swaps
Structure check · Pain point 04
We chose
To redesign the whole dish through whole-dish optimization.
Instead of
Naive one-for-one ingredient swaps.
Why
Swaps strip structure: 31% role drift vs our 12%. Every ingredient is tagged by its job, so changes stay within the same role.
Trade-off
Latency rose from 0.4s to 1.7s per redesign, and the ML engine was much harder to build.
04
Explained edits over a black box
Why-this-change notes · Pain point 03
We chose
Explainable step-by-step search, where nothing is applied silently.
Instead of
Letting a generative model rewrite the recipe in one shot.
Why
Every edit is readable and carries a reason tied to the score that drove it, so the cook stays in control and trusts the result.
Trade-off
We traded generative creativity for auditable, predictable changes.
What we said no to: meal planning (the space is crowded and it replaces the dish), cook-proposed swaps (kept the first release focused), and clinical diets (they need precision our flexible approach can't promise).
Validation
Three rounds of validation
We fixed the friction, benchmarked the model, then measured what people preferred.
A 6-person pilot revealed two points of friction that undermined user trust. I made two technical updates before running the main study.
Learnings
What I'd carry forward
01Hitting the target isn't what people judge
Nutrition accuracy didn't significantly predict how people rated a redesign. Structure drove whether it seemed plausible, and flavor drove whether it still felt like the same dish.
02Upgrade a habit, don't ask for a new one
Interviews showed the real friction was abandoning familiar food. Reworking the recipe people already cook removed the biggest barrier: asking them to change what they eat.
03A forgiving UI needs strict guardrails underneath
People rarely know their nutrition numbers, so a slider beat gram targets. But raw slider input made the optimizer jump at the extremes, and a sigmoid curve smoothed it.
04The real test is your own dish, in your own kitchen
Participants rated a curated set of dishes, on paper. That kept the swap-versus-Twinplate comparison controlled, but it isn't how people would use Twinplate. Next, I'd run a blind cook-and-taste test on recipes people bring themselves, and check the flavor model on cuisines it under-rated, like South Asian dishes.