CLOSED-LOOP BODY COMPOSITION · v0.1 · BENGALURU
Set a goal. Log your weight. Everything else runs on autopilot.
It reads your training, adapts your macros, and stocks your fridge via Swiggy Instamart for Indian lifters who are tired of tracking apps that stop at tracking.
closed beta · 47 lifters · bengaluru, mumbai, hyderabad first
THE GAP
Every fitness app stops one step short.
You can track lifts, log calories, or order groceries. No tool closes the loop between them, and bodyctl is built to do exactly that.
| Tool | What it does | What it misses |
|---|---|---|
| MacroFactor | Adaptive TDEE, clean logger | Western food DB, no grocery, ignores your training |
| HealthifyMe | Calorie chat, human coaches | Shallow engine, wild restaurant macros, upsell loop |
| Cronometer | Most accurate logger | Pure log. No controller. No automation. |
| MyFitnessPal | Massive crowd-sourced DB | Stale UI, ads, no Indian depth |
| Hevy | Best lift tracker on the market | Training only. Nutrition is your problem. |
| bodyctl | Goal → macros → cart, training-aware, Indian-first | v1 is COD-only. Restaurant macros are envelopes, not logs. |
SYSTEM ARCHITECTURE
Boring layer first. Then automation.
The macro engine is a pure function: weight history in, daily targets out. No network calls, no UI state, no ORM. We tested it against 200 synthetic lifters before a real user touched it.
Everything else is plumbing. Swiggy MCP for Instamart. Hevy MCP for training data. IFCT 2017 + Docling OCR for nutrition. Postgres for state, pgvector for SKU matching. The agent orchestrates. It does not invent.
CORE COMPONENTS
Five small things, wired together.
goal engine
Mifflin-St Jeor for seed. PI controller adapts TDEE from weight trend. Hard-clamped for first 4 weeks because signal is noise until then.
meal planner
ILP solver picks from 50–100 Indian meal blocks calibrated to portion sizes. Solves for macros, budget, and prep time. No balanced bowls nonsense.
grocery aggregator
Maps week's meals to pin's live Instamart SKUs. Builds cart. You triple-confirm. Order placed COD.
hevy power-up
Reads volume and session RPE from Hevy. Adds carbs on heavy lower-body days. Pulls back on full rest days. Optional. Macros work without it.
restaurant fallback
Dineout integration logs restaurant meals as macro envelopes, not point estimates. Honest ±300 kcal error on Indian curries. Better than guessing zero.
HONEST CONSTRAINTS
Things this product cannot do, and why we say so upfront.
Every fitness app over-promises. We won't.
Orders are COD-only and irrevocable in v1. We triple-confirm before any place-order call. UPI checkout lands when Swiggy ships it.
Catalogue churns per pin per week. SKUs are cached aggressively, never hardcoded. Your cart on Monday may not exist Sunday.
542 raw food entries. Authoritative for dal, atta, paneer, eggs. Branded packaged foods like whey and protein bars need OCR via Docling.
One roti is 25–50g atta depending on whose hand rolled it. Onboarding calibrates portion sizes once. We do not pretend everyone eats same gram.
Controller whips wildly in first 4 weeks of user data. Early estimates are hard-clamped and shown with confidence band.
Weight, food, and training data are health data under DPDP 2023. Data minimization by default. No third-party analytics on user records.
BUILD STATUS · UPDATED WEEKLY
Where this is right now.
| IFCT 2017 ingestion · 542 foods | shipped |
|---|---|
| Synthetic test harness · 200 lifters | shipped |
| Macro engine · PI controller | shipped |
| Postgres + pgvector schema | shipped |
| Meal planner · ILP solver | in progress |
| Hevy MCP integration | in progress |
| Onboarding · portion calibration | pending |
| Swiggy MCP · Instamart cart | |
| Web app · Next.js 15 | pending |
| Dineout · restaurant fallback | pending |
| iOS shortcut · weight log | pending |
Swiggy Builders Club approval pending. Track at github.com/akl773/bodyctl.
commit: github.com/akl773/bodyctl@dcf28cc
Closed beta. 47 lifters in. Bengaluru, Mumbai, Hyderabad first.
We onboard manually. We read every reply. No drip campaign.
or email akhil@bodyctl.inwith your weight in kg, goal, and screenshot of last week's hevy. that's the application.