NutriCopilot — Case Study
NutriCopilot: A Nutrition Coach That Talks Like I Do
Rough-language calorie tracking, built for the way I actually eat and talk.
RoleSolo Designer & Builder
Timeline10 days
StackNext.js, Vercel, WHOOP API
Problem Statement
I don't track calories precisely, but I still want a ballpark. Talking to ChatGPT made it hard to visualize where I stood, so I was constantly re-asking the same question in different words.
What I Did
Designed and built a web app that takes rough, spoken-language food logs, estimates macros conservatively, and answers "does this fit?" directly.
Fig: Log screen with today's macros, and the Ask screen answering "does this fit?"
01Problem
Same Question, Every Day
A week of chat logs made the pattern obvious.
I don't track calories all that accurately, but I still want a rough sense of where I stand. Talking to ChatGPT about it made things hard to visualize — every answer was a wall of text I'd have to re-read against whatever I'd already eaten.
After about a week, the pattern was obvious. I kept asking some version of the same three questions: Can I eat this? Can I eat that? Does this fit my calorie and protein range for today? So I built an app around answering exactly that.
Fig: ChatGPT — logging meals in rough language and asking it to estimate the day
Fig: ChatGPT — the back-and-forth estimation NutriCopilot was built to replace
02Solution
Speak Like You Eat
Rough language in, conservative macro estimates out.
NutriCopilot takes food logs the way I'd actually say them out loud — "2 gobi paratha, 1 toast w peanut butter" — and conservatively calculates calories and macros instead of assuming best-case portions.
The core feature is the Ask tab: instead of me doing the math on whether a dish fits my remaining plan, I ask directly — "Can I have Buldak with 2 eggs?" — and it calculates whether it fits, what it costs against today's targets, and what to swap if it doesn't.
Fig: Asking NutriCopilot directly instead of doing the math myself
Fig: Saved go-to meals for faster logging on repeat days
03WHOOP Integration
Intentional, Not Static
Recovery and strain change what "hitting your macros" should mean that day.
A flat calorie and protein target ignores that some days ask more of your body than others. I hooked up my WHOOP so NutriCopilot can factor in recovery, strain, and sleep when it suggests what to aim for — low recovery and high strain push it to recommend a more protein-forward day, for example.
It turns the app from a passive log into something that nudges intent: not just "here's what you ate," but "here's what today's body probably needs."
Fig: WHOOP recovery and strain shaping daily targets, log and ask screens
Fig: Asking the Ask tab whether a meal fits, WHOOP recovery context included
Fig: The end-to-end logging and asking experience
04What's Next
Just for Me, for Now
A personal tool first — the rest is optional.
The whole thing — from Figma to a working app on Vercel with WHOOP synced in — took about 10 days. It solved the actual problem: I stopped re-asking ChatGPT the same three questions every day.
Next up if I keep going: smarter defaults for recurring meals so logging gets even faster, and tightening the conservative-estimate logic against a few weeks of real data instead of my gut sense of portion sizes.