The challenge
Most calorie apps assume Western grocery aisles and manual logging. For people eating regional Indian meals — mixed thalis, street food, home recipes — the friction is brutal: endless searching, wrong portions, abandoned streaks. CalorAie needed an app that matched real diets, made logging feel effortless, and could scale AI inference and data from day zero — not after the first traffic spike.
What we did
We built a mobile nutrition product around AI that removes the boring work:
- Instant food scanner — photograph a plate and log calories in seconds, instead of hunting a database.
- Personalized, region-aware meal plans — recommendations tuned to local cuisine, goals, and lifestyle — not a generic US-centric food list with a curry entry bolted on.
- Progress & insights — clear daily tracking and analytics so people see momentum, not just numbers.
- Payments via Razorpay — subscriptions and in-app billing wired into the product so premium plans stay truthful in the client.
Technical architecture
We designed CalorAie so the mobile experience, AI inference path, and data layer could scale independently:
| Tier | Role | What we shipped |
|---|---|---|
| Presentation | Member experience | Flutter mobile app — scanning, logging, meal plans, and progress on a single UI codebase |
| Application | Business logic & APIs | Scalable API surface for auth, nutrition flows, and Razorpay payment state — with a dedicated AI inference path that can scale without dragging the rest of the product |
| AI layer | Food recognition & plans | Models and prompts tuned for Indian dishes (thalis, regional staples, home recipes) — not a Western food database with localization bolted on |
| Data | Durable state | Supabase serverless Postgres from day zero — auth, profiles, logs, and plans on an architecture that grows with usage instead of a rewrite later |
How we architected the AI layer:
The AI path is a first-class service behind the API, not a call buried in the mobile client. Recognition and meal-plan requests go through a scalable inference layer optimized for Indian cuisine — so a mixed plate or regional dish is a primary case, not an edge case. We pro-optimized caching on hot recognition and plan paths so repeat or near-repeat lookups avoid full model cost under load, and the API stays responsive as concurrent scans grow. When the model is wrong, the product still works: easy edits and clear calorie math the user can trust.
Scalability choices we made early:
- Serverless Supabase data tier so auth and nutrition state scale without standing up ops from day one
- Stateless, horizontally scalable application API — including the AI layer — so inference load does not block logging or billing
- Cache-first strategy on the AI path to cut latency and cost as usage compounds
- Razorpay payment events into a clear subscription state machine — not ad-hoc flags in the Flutter client
What we did differently
We treated regional food as a first-class design and architecture constraint — not a localization afterthought. The AI layer earns its place by cutting logging time and matching local plates; Flutter + Razorpay + Supabase keep that promise operational from MVP to scale.
The outcome
CalorAie is live on Google Play: AI meal plans, smart calorie tracking, and a beginner-friendly experience aimed at weight loss, gain, or maintenance — without pretending to replace clinical advice.
Stack & scope
AI product strategy, Flutter engineering, Indian-cuisine food recognition, scalable API and AI caching, Supabase serverless data, and Razorpay billing — designed and shipped with Shola Digital.
