Architecture
Read meals from photos and plain words.
Every tracker I tried was a search screen over a database with no desi food. I replaced search, scan and fill with conversation. Type "daal chawal and chai" and Gemini returns the macros.

An AI calorie tracker for desi food, designed, built and shipped solo from Karachi, Pakistan.

The short version
calog.cc started with one question: could logging food be as easy as saying what you ate?
Food trackers ask you to search a database, pick a match and set a portion. Desi meals are rarely in that database. I wanted a conversational tracker that turns a sentence or a photo into calories and macros.
I designed and built it as an independent product, from the first sketch to the live release.
Search "roti" in MyFitnessPal and you'll likely get roti canai, the Malaysian flatbread, instead of the roti eaten across Pakistan and India every day.
Paratha, qeema, biryani, daal and chai are missing or logged inconsistently, so people guess, log a substitute or give up. I was one of them. At the gym 3 to 4 times a week and eating roti and qeema, I had no reliable way to track it.
The same dish changes name, recipe and portion from one home to the next. A database entry rarely matches the plate.
Searching, comparing results and picking portions interrupts the habit before it forms.
A chat box only helps if it logs food with less effort and returns numbers people understand and trust.
It's designed around logging a meal, seeing where the day stands and spotting the pattern across the week.
01 / 04




Design decisions
These shaped how calog works, from the first meal you log to the moment the AI asks for help.
Architecture
Every tracker I tried was a search screen over a database with no desi food. I replaced search, scan and fill with conversation. Type "daal chawal and chai" and Gemini returns the macros.

Conversion
A sign-in before the first log loses people before they see the value. The guest flow at /try lets you log 3 meals and see your day, then carries the logs into a new account.

Trust
Below 0.7 confidence, calog shows a review card and waits. A wrong entry logged automatically costs more trust than one extra tap.

The build
Designing the experience was half the job. The product also had to turn a sentence or a photo into structured data, store it and show it back, every time.


AI
One Gemini model reads text and photos and returns strict JSON: each item with its quantity, calories and macros, the totals, a short coaching line and a confidence score. Food names stay as typed (chai, karahi, paratha), and anything under 0.7 goes to review.

Design system
Semantic tokens from the first component, with no hard-coded hex values. Switching dark to light is one Object.assign call, which is why new features ship in hours.
Prompt rules
Frontend
Next.js, installable as a PWA. Components are styled with design tokens, and dark and light themes come from one token set.
Backend
Supabase for accounts and logs. Guest logs from /try migrate on sign-in.
Hosting
Netlify. Offline states show a clear error and a retry prompt.
From the first paper flow to the live product.









140+
Registered users
Usage snapshot, October 2026
I designed and built an AI-assisted logging flow to cut manual entry. It's live at calog.cc, featured on Product Hunt and Fazier, and sends a weekly digest every Sunday.
When Netlify went down on launch day, people saw a blank screen. After that I added an offline state with a clear error and a retry prompt.
What I learned
Dropping the food database removed the most steps for users, and it took the most design work, in the prompts, the confidence gate and the review card.
The model was the easy part. Trust came from everything around it, from what logs automatically and what waits for review to how the numbers read.
A live product raises questions a prototype can't. The guest flow, in-chat coaching and photo portion editing all shipped after launch, most within days of deciding to build them.
I directed the AI. The judgment, taste and product decisions were mine.
calog.cc exists because I was the user nobody built for. Finding that kind of problem is what I'm good at, and now I'm fast at solving it. Send me yours.
Get in touch