All case studies

Case study · ppFIT · 2026

A food diary that fills itself in

ppFIT is an AI assistant you tell what you ate, and it keeps your calorie, water and weight diary for you. Below is how it works and the decisions it took to make its numbers trustworthy.

Role:
everything, from idea to deployment
Year:
2026, beta in production
Where:
web, Telegram Mini App, bot
Open ppFIT
ppFIT Today screen
Chapter 01

The problem isn't calories, it's routine

Every food tracker works the same way: find the product in a database, pick from a dozen similar ones, weigh it, type in the grams. At every meal, every day. Most people quit after a couple of weeks, not because they changed their mind about losing weight, but because they got tired of filling in forms.

I wanted to remove that step entirely. Not make the form faster, but replace it with a conversation: write "had cottage cheese and a coffee", and that's it. Or send a photo of the plate. The rest is the app's job.

If logging lunch takes longer than eating it, people abandon the diary within a week.
Empty chat with Balansik and a typed phrase about breakfast
Instead of a form, one phrase in the chat
Chapter 02

Rule one: never trust the model with numbers

The most dangerous thing about an AI product is how convincingly the model can be wrong. It can invent a portion, count the same dish differently each time or quietly drop an item from a list. In a chatbot that is annoying. In a diary people use to look after their health, it is unacceptable.

So in ppFIT the model never writes to the database. It only proposes an action: "add 250 g of oatmeal to breakfast". The server checks it against a dozen rules and only then saves it. Every number keeps its origin: in the interface a check mark means verified data, and "≈" means an AI estimate. The user always sees what can be trusted outright and what is worth double-checking.

Food diary with data origin marks
≈ for AI estimates and a check mark for verified data
Chapter 03

A conversation, not a command

People don't write the way a parser expects: "a bowl of borscht", "a can of tuna", "same as yesterday", and ten minutes later "no, it was 200 grams". The meaning of every phrase depends on what was said before it.

I gave the assistant a memory of the current conversation: it remembers what it asked, can put a clarification on hold when the user changes the subject, asks for confirmation before deleting and lets you undo the last entry with one tap. Sometimes Balansik asks one question too many. That is deliberate: a question is cheaper than a wrong entry.

Conversation with Balansik
Lunch logged from one phrase, the reply shows real totals for the day
Chapter 04

Three ways in, one person

Food is easier to share in Telegram, and charts are easier to read in a browser. So ppFIT lives in three places at once: a web app, a Mini App inside Telegram and a regular bot. Each has its own way to sign in, but a person must have one diary.

The trickiest part is linking Telegram to an existing account. Done naively, it risks giving someone else's Telegram access to someone else's data. So on first launch the app asks explicitly whether to create a new profile or sign in to an existing one, and in case of a conflict it reports an error honestly instead of silently merging data.

Settings: Email and Telegram linked to one account
Email and Telegram: one account and one diary
Chapter 05

Cheap for real

The product had no budget for servers or DevOps. Everything runs on ordinary shared hosting: a static interface, PHP and MySQL, with no Node.js, queues or background workers.

In an AI product money leaks through model requests, so I measured first and chose second. I built a benchmark of 55 scenarios in three languages and compared models on accuracy and price. Now simple messages go to a fast, cheap model, complex ones go to a stronger one, and a budget limit keeps a single user from burning a month's budget. The estimated cost is about 20 cents per thousand requests. If the AI goes down completely, the diary keeps working manually.

Measure first, then choose the model. Otherwise you pay for the most expensive one just in case.
Manual food entry form
If the AI is off, an entry can be added manually
Chapter 06

What came out of it

ppFIT is live in beta at ppfit.webmm.ru. Food can be logged with a phrase or a photo, in the browser or in Telegram, and in every channel it is the same diary.

channels on one account
3
channels on one account
estimated AI cost per 1,000 requests
~$0.20
estimated AI cost per 1,000 requests
AI benchmark scenarios in RU, RO, EN
55
AI benchmark scenarios in RU, RO, EN
backend and frontend tests
660+
backend and frontend tests
30-day weight history
History: 30-day weight trend

Want the same approach for your product?

An AI assistant, a web app or a Telegram Mini App: tell me about your project.

Discuss a project