Point your camera at a meal. Get instant nutrition data.
Prato uses Google's Gemini Vision API to identify food from photos and estimate calories and macros in real time. No manual logging, no barcode scanning — just take a photo.
Live demo → https://prato-ai.vercel.app (no signup, runs in your browser)
- Scan a meal with your camera (or upload a photo)
- Gemini identifies the food items and estimates calories, protein, carbs and fat
- Edit the detected items before saving if anything's off
- Meals, daily calorie target, and weight log persist in
localStorage— per browser, no account - Track your daily calorie target and weight trend over time
Camera / Upload
↓
Base64 image → POST /api/food/analyze
↓
Gemini Vision API (gemini-2.5-flash-lite)
↓
Structured JSON: meal name, calories, macros, item list
↓
User edits → Save to localStorage
The API layer runs as a Vercel serverless function in production, keeping the Gemini API key server-side. The client persists meals, profile, and weight logs in localStorage — zero backend state, zero auth.
| Layer | Tech |
|---|---|
| Frontend | React + TypeScript + Vite + Tailwind |
| AI | Gemini Vision API (@google/genai) |
| Persistence | Browser localStorage |
| Deployment | Vercel (serverless function for the AI call) |
- Live camera scan overlay with upload fallback
- AI nutrition estimation with confidence score
- Editable meal editor: adjust quantities, calories, meal type
- Meal history grouped by real dates
- Daily calorie target + progress tracking
- Weight log with trend chart
- Mobile-first, works on any device over HTTPS
git clone https://github.com/MarioJACosta/prato
cd prato
npm install
cp .env.example .env.localAdd to .env.local:
GEMINI_API_KEY=your_key
npm run dev
# → http://localhost:3000Built by Mário Costa · LinkedIn