DEV Community

Ofg
Ofg

Posted on

Building a Calorie Tracker in Telegram: Why the Best Architecture Is No App Store

Everyone told me you need a native mobile app to build a health product.

"Users expect polished iOS/Android experiences." "Nobody trusts a bot with health data." "Telegram is just for memes."

They were wrong on all three counts. After building NutritionCheckerBot — an AI-powered calorie tracker that lives entirely inside Telegram — here's why I believe the future of health tracking isn't in the App Store.

The State of Calorie Tracking, Mid-2025

The numbers tell a clear story. MyFitnessPal at $19.99/month requires 45 seconds and 8 taps to log one meal. MacroFactor at $11.99 needs 90+ seconds. NutritionCheckerBot at $3.95 needs 7 seconds — open Telegram, send a photo, done.

Time to first logged meal:

  • NutritionCheckerBot: 7 seconds (open Telegram → send photo)
  • Cal AI: 25 seconds
  • MyFitnessPal: 45 seconds
  • Cronometer: 60+ seconds
  • MacroFactor: 90+ seconds

The Friction Physics

Every interaction in an app has a cost. Native app flow requires 8-12 interactions and 40-90 seconds per meal. Telegram bot flow requires 2-3 interactions and 5-15 seconds. This is a 10x reduction in interaction cost.

Why Telegram Beats Native

1. No Acquisition Funnel

Traditional app: hear about product → search App Store → read reviews → download → create account → onboarding → maybe use.

Telegram bot: hear about product → tap link → start tracking. Conversion difference: an order of magnitude.

2. The Always-On Advantage

Average Telegram user opens the app 18-25 times per day. Average fitness app: 2-3 on a good day, 0 on most.

3. Cross-Platform for Free

Telegram runs on Android, iOS, Desktop, Web, even KaiOS feature phones. One bot, one API, no 5 codebases.

The Technical Architecture

NutritionCheckerBot's stack: User → Telegram → aiogram (Python) → DeepSeek API → SQLite, with GPT-4o for photo verification.

Why DeepSeek for Food Parsing?

We tested GPT-4o, Claude, and DeepSeek. DeepSeek matched GPT-4o on accuracy (~88% on our test set) at roughly 20x lower cost per API call. For a product where every meal log is a separate API call, this is the difference between a viable business and a loss leader.

Voice Processing Pipeline

Voice message → ffmpeg to 16kHz WAV → Whisper STT → DeepSeek parse → SQLite store. Total latency: 2-4 seconds.

The AI Nutritionist

Beyond parsing, the bot maintains conversation context across meals and days. When a user asks "why am I not losing weight?", the AI pulls their last 7 days of logs, identifies patterns (low protein, late-night eating), and offers specific advice.

The Database Challenge

MyFitnessPal's 19M foods took 15 years to accumulate. We solved this differently: AI-first parsing (no database needed if AI estimates from any description), cache-as-you-go (every user meal enriches the local cache), and regional auto-discovery (Turkish, Persian, Russian dishes handled correctly on day one).

The Engagement Flywheel

77% churn in 3 days, 90% in 30 days is the industry standard. NutritionCheckerBot addresses this with micro-challenges (1 photo/day → 3 extra free days), paid challenges ($10 entry, pooled, winner takes 90%), and zero notification spam — users come back because tracking is fast, not because we nag.

The Business Case

At $3.95/month base tier, NutritionCheckerBot needs fewer than 1,000 paid users to cover infrastructure costs. At $10/month premium, a few hundred sustains the entire operation.

Looking Ahead

Three things for developers building on Telegram:

  • Chat is a better UI for input-heavy tasks than most apps
  • The platform owns distribution — no ASO, no ad campaigns
  • AI makes it possible — food parsing is now a curl command away

The best calorie tracker iOS app still requires a download. The best one in Telegram requires one tap. That single tap difference is the moat.


NutritionCheckerBot — AI-powered calorie tracking in Telegram. Text, photo, and voice input. 7 languages. Built with Python, aiogram, DeepSeek, SQLite. Free tier available at NutritionCheckerBot.

Top comments (0)