Inspiration

Most fitness plans are written for a kitchen you don't have. Grilled chicken, quinoa, 150 g of this. If you live in India, your day is dal, chapati and a katori of raita, and no calorie counter knows what a katori is. Every app we tried made us translate our food into its units, and that translation is where people quit.

We wanted one plan that speaks in household portions, treats diet and training as the same week, and has a coach who has read the plan before you ask.

What it does

Steado is an AI diet and training coach built for how people in India actually eat.

  • Onboarding asks one question per screen: goal, body, health conditions, diet type and cuisines, the foods you name, your kitchen, where and on which days you train, injuries. The API generates a seven-day plan from that.
  • Meals are dishes in household portions, not ingredients in grams: Jeera pulao · 1.5 × plate, Kulthi dal · 1 × bowl, Chapati · 4 × chapati. Each meal is badged PRE- or POST-WORKOUT when it sits around a session.
  • Log by photo or catalog. Photograph the plate and a vision scan returns per-dish review. Or search the catalog, pick the food's own portion (katori, bowl, or by weight), and optionally log it instead of what was planned. Home then shows what it replaced.
  • The coach knows the plan. Ask "what's left today?" and it reads your day back: calories, macros, the next meals, the session. It can act through 23 tools: swap a meal, add an exercise, log a workout, log weight, update preferences. It declines off-topic questions in your own language.
  • The plan learns from you. Adherence feedback names the dishes you refuse most, the newest chat memories reach next week's generation, and weigh-ins move your targets.
  • Workout logging carries the last set forward, shows rest as a countdown strip, and lets you log a session after the fact.
  • Offline-first. A persistent outbox queues every write; a sync banner shows what is waiting. Light, dark and system themes.
  • Premium through RevenueCat meters the coach, the scans and the plans.

How we built it

  • App: Flutter, feature-first clean architecture. flutter_bloc for state (Cubits for flat load/mutate, Blocs for event-sourced flows like coach streaming and photo scan stages), get_it for DI, dio for transport, go_router with a single auth redirect guard.
  • Offline: Hive caches under per-resource cache policies, a RequestQueue outbox drained by a SyncManager, client-minted UUIDv7 ids so writes can be applied optimistically and reconciled later.
  • API: a Node/TypeScript backend that runs plan generation, weekly replan, the food catalog, the vision scan, and the coach with SSE streaming and tool calls.
  • Billing: RevenueCat SDK on the client, webhook on the API, one steado_premium subscription with two base plans.
  • Auth: Firebase phone sign-in exchanged for a Steado session.
  • Release: Android on Play internal testing, an iOS runner, and a web build at steado.web.app. 59 of 60 API operations are wired to screens; a script audits that instead of a hand-kept checklist.
  • Video: the launch film is a Remotion composition, timed from a single script table so no scene knows a frame number.

Challenges we ran into

  • Portions are hard. A "bowl" of dal and a "bowl" of pulao are different weights, and users don't want to see grams first. We built the portion sheet from each food's own catalog portions, with weight as the fallback rather than the default.
  • Making the AI plan accountable to real behaviour. Adherence originally reached the generator as counts that named no dish, and chat memories never reached generation at all. Wiring those through, and making weigh-ins move targets, took more backend work than any screen.
  • Never-fail generation. A near-miss on the last attempt used to abandon the whole week. Now the closest passing week is committed and named on the run row.
  • Offline writes that reconcile. Optimistic apply-then-reconcile across meals, workouts and the coach, with a sync banner the user can trust.
  • We renamed twice in one week. Pulse collided with other apps, so it became Acheave; two days later it became Steado, with a new three-blade mark drawn from one master SVG that drives the icon, the splashes and every loader. The video shows all three cold starts.
  • Billing can't be tested against a local backend, because RevenueCat's webhook delivers to the deployed API. Learned that the quiet way.

Accomplishments we're proud of

  • No placeholder screens. Every feature talks to the real backend.
  • A coach that reads and writes the same plan the screens show, so a swap in chat shows up on Home.
  • The plan gets better the longer you use it, and we can point at the code that makes it so.
  • Shipping Android, iOS and web from one codebase in the same week as a full rebrand.

What we learned

  • The units are the product. The moment we showed "4 × chapati" instead of "144 g", the plan stopped feeling like homework.
  • A coach with a scope boundary is more trusted than one that answers everything. Ours used to write bubble sort on request.
  • Build-time config fails quietly. Forget one --dart-define flag and the app launches fine and every request times out on a real phone.

What's next

  • Store release on Play and the App Store.
  • Barcode lookup, the one API operation not yet wired.
  • Yoga: 90 asanas are in the catalog and waiting to deploy.
  • Wearable signals (Health Connect) feeding the daily plan.

Built With

Share this project:

Updates

posted an update —

Steado — launch video is up https://youtu.be/XMkc9ZY_Ozs

An AI coach for diet and training, built for how people in India actually eat. Most plans assume a kitchen you don't have (grilled chicken, quinoa, 150 g of this). Steado plans your week around dal, chapati, raita, in portions you'd say out loud: a bowl, a katori, four chapatis.

What's in it: • Goals + how you eat (veg / eggetarian / non-veg) → a full week planned • Diet and training in one plan, so meals know when you train • Log by photo or catalog search; it tells you what the meal replaced • A coach that reads your actual day back: calories, macros, next meals, the session • Works offline, dark mode

Flutter + RevenueCat. Site is live at steado.web.app, stores soon.

Would love to hear what you think, and happy to swap feedback on anyone else's build.

Log in or sign up for Devpost to join the conversation.

posted an update —

Pulse — 2-week build update

Pulse is an AI diet & fitness coach for India (Flutter + Fastify/Postgres backend, RevenueCat for billing). Put together a ~65s product-update video covering everything shipped in the last 13 days:

Meal plans now anchor on real dishes instead of raw ingredients — portions read as "2× roti," not "0.3× bowl" — with regional cuisine ranking and a diabetic-safe carb ceiling Onboarding rebuilt to ask one question at a time Real anatomy figures + demo clips across all 719 exercises (replacing a coarse placeholder glyph) Internal admin console rebuilt from scratch on shadcn/ui — dashboards, catalog curation, broadcasts Behind the scenes: a near-miss plan generation no longer fails outright, notifications stopped arriving in a 7am burst, and the AI coach is exactly-once per message now Premium grants + a web client, both wired through RevenueCat/the server

232 commits, 36 DB migrations, narrated with real audio. Still very much a dev build (no public release yet)

https://youtu.be/PB9c5zh3uao

Log in or sign up for Devpost to join the conversation.

Submission history