cd /news/artificial-intelligence/i-built-a-free-ai-nutrition-tracker-… · home topics artificial-intelligence article
[ARTICLE · art-32210] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=· neutral

I built a free AI nutrition tracker as a solo dev — here's what I learned

A solo developer built goNutriTrack, a free multilingual PWA nutrition tracker that uses AI for meal logging via photo, voice, barcode scan, and text search. The app, powered by Anthropic Claude and a serverless stack, overcame challenges like iOS PWA white screens and offline data queuing. The developer emphasizes shipping early and notes that PWA on iOS remains painful.

read2 min views4 publishedJun 18, 2026

What I built

goNutriTrack is a free multilingual PWA nutrition tracker. The idea was simple: make meal logging so fast that people actually stick with it.

You can log meals by:

📸 Photo — Claude Vision identifies ingredients automatically

🎤 Voice — say "200g chicken and rice", AI parses it

📷 Barcode scan — OpenFoodFacts database

🔍 Text search — OpenFoodFacts + USDA

Plus: AI Coach, workout tracking, weight tracking, water tracking, PDF export. Works in 5 languages (Greek, English, German, French, Spanish).

The stack

Frontend: React + Vite PWA

Backend: Cloudflare Workers (proxy for Anthropic API) Database: Supabase

AI: Anthropic Claude (Vision + Haiku for voice parsing) Hosting: Cloudflare Pages

No server, no Docker, no DevOps. Everything serverless.

Technical challenges

  • iOS PWA white screen The hardest bug. When users add the app to Home Screen on iOS, sometimes it opens to a blank white page. The fix was switching the Service Worker navigation handler from network-first to cache-first (stale-while-revalidate), so iOS always has something to show immediately.
  • Offline queue Supabase calls fail when offline. I built a localStorage queue that stores pending inserts/deletes and syncs automatically when the connection returns — without the user noticing anything.
  • Vite + PWA build pipeline The Service Worker cache name needs to change on every deploy to force updates. I wrote a Vite plugin that patches the SW file during config() (not buildStart) to avoid race conditions with vite-plugin-pwa.
  • AI meal recognition accuracy Claude Vision is good but not perfect. The solution was making every recognized item editable before saving — users can adjust portions and correct names. This turned a potential frustration into a feature. What I learned Ship early. I spent weeks polishing before showing anyone. The first real users found issues in 10 minutes that I had missed for months. PWA on iOS is still painful. Safe area insets, white screens, push notifications not working — Apple makes this hard on purpose. Solo means every decision is yours. That's both the best and worst part. What's next Looking for honest feedback — especially on the AI logging accuracy and anything that feels broken. Try it free: gonutritrack.com
── more in #artificial-intelligence 4 stories · sorted by recency
── more on @gonutritrack 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-built-a-free-ai-nu…] indexed:0 read:2min 2026-06-18 ·