GenAI · own product · 2026
Nutrigordo
A nutrition assistant in Telegram. Meals are logged by text, photo or voice, and a PDF report is ready for your nutritionist.
Built with
- Python
- FastAPI
- Pydantic
- OpenAI
- Telegram Bot API
- Supabase
- Postgres
- ReportLab
- Render
- pytest
- Claude Code
The problem
Trackers ask for grams. People say “the usual toast”. The bot had to understand that and still keep numbers a nutritionist can trust.
How a message is processed
The design rule
The model interprets; the code decides. The model only returns structured fields; totals, dates and anything that deletes are handled in code.
Two failures that shaped it
“110 calories for one cookie is impossible” was read as undo, and a whole lunch disappeared. Undo now needs a second check.
A can of soda was worth 66 or 106 kcal depending on which size the search found. Now the size is asked, with the real sizes as buttons.
Both are tests now. Fast tests block every deploy; real conversations are replayed against the model only where the code changed.
Stack
Telegram webhook, one FastAPI process on Render, OpenAI with outputs validated by Pydantic, and Supabase with row-level security per user.
The code is private. The web demo is a guided walkthrough of a real day with the assistant and does not need Telegram or an account.