Kann ich Cal AI vibecoden?

JEIN · Wochenendprojekt
Preis noch nicht geprüftBauzeit ein DurchgangKategorie 🧘 wohlbefindenersetzt von 0 Personen
Preis für Deutschland

Europreis noch nicht geprüft

noch nicht am Original geprüft · Preisseite des Anbieters ↗ · so prüfen wir

Ein Essensfoto an ein multimodales Modell schicken und nach Kalorien und Makros als JSON fragen, dieser Trick ist ein Bau an einem Abend und funktioniert überraschend gut. Schwer wird es bei allem drumherum: eine native App, die schnell öffnet, ein Kamera-Ablauf, den du wirklich dreimal am Tag nutzt, Barcode-Suche gegen eine echte Lebensmitteldatenbank, Sync mit HealthKit oder Google Fit und Serien, die dich über Tag vier hinaus protokollieren lassen. Genauigkeit hängt auch weniger an deinem Prompt als an Kalibrierung, die Portionsschätzung ist, wo diese Apps leben oder sterben, und du hast keine Korrekturdaten. Eine lokale PWA ist ein wirklich nützlicher persönlicher Ersatz, wenn du der Typ bist, der ein Browser-Lesezeichen statt eines App-Symbols erträgt. Das Vision-Modell mietest du außerdem, also ist das nicht ganz eigenständig.

der Prompt
Build a self-hosted photo calorie logger as a mobile-first PWA. No accounts, no cloud, no telemetry, single user.

Stack, no substitutions:
- Next.js 15 App Router, TypeScript, Tailwind. Server actions and route handlers only, no separate API service.
- SQLite via better-sqlite3, file at ./data/food.db, schema created on boot if missing.
- OpenAI-compatible chat completions with image input for the estimate. Read OPENAI_API_KEY and MODEL from .env. Commit a .env.example, never a real key.

Core loop:
1. Home screen shows today: total kcal, protein, carbs, fat, plus a list of logged entries with thumbnails and a delete button on each.
2. A big camera button uses an input type="file" with accept="image/*" and capture="environment". Resize client side to max 1024px on the long edge, JPEG quality 0.8, before upload.
3. Server action stores the image under ./data/uploads, then sends it to the model with a strict instruction: identify each distinct food item, estimate portion in grams, return JSON only matching { items: [{ name, grams, kcal, protein_g, carbs_g, fat_g, confidence }], notes }. Use JSON response format and validate with zod. On parse failure, retry once, then surface an error, do not fake numbers.
4. Show a confirmation screen listing detected items with editable grams. Editing grams rescales that item's macros linearly. Save writes one row per item plus a parent meal row.
5. Manual entry form as a fallback: name, grams, kcal, macros. No barcode scanning, no external food database.

Also include:
- A daily kcal and protein target stored in a settings table, shown as progress bars.
- A /history page: last 30 days, one row per day with totals, and a tiny inline bar chart drawn with divs, no chart library.
- Export button that dumps all entries as CSV.
- PWA manifest and an icon so it can be added to a phone home screen. Offline is out of scope, say so in the README.

Explicitly out of scope: auth, multi-user, HealthKit or Google Fit sync, push notifications, streaks, recipes, native apps.

Deliver a README with setup, .env vars, how to run on a LAN so the phone can reach it, and one blunt paragraph noting that portion estimates from a photo are rough and the edit-grams step is not optional if you care about the numbers.

Antworte mir auf Deutsch. Oberfläche, Kommentare und README auf Deutsch, alle Bezeichner wie Tabellen, Spalten, Variablen, Routen und Dateinamen bleiben Englisch.

$ im Agenten öffnen (Prompt ist vorausgefüllt, du drückst Enter) oder direkt kopieren · dieser Bauplan ist noch auf Englisch, die Bitte um deutsche Antworten hängt unten dran · dieser Prompt wurde aus dem Bauplan erzeugt · Verbesserung einreichen

warum Menschen weiterhin bezahlen

Weil Kalorienzählen nur funktioniert, wenn die Reibung nahe null ist, und ein Abo ein App-Symbol kauft, eine Kamera, die in einer halben Sekunde öffnet, eine Lebensmitteldatenbank und eine nervende Benachrichtigung um 20 Uhr. Eine selbst gehostete Web-Version kostet dich nichts im Monat, fügt aber jeder Mahlzeit drei Sekunden und eine mentale Hürde hinzu, genau die Menge Reibung, die eine Tracking-Gewohnheit beendet. Bezahlt wird nicht für den Vision-Aufruf, sondern für das, was dich am dreißigsten Tag noch dazu bringt.

Anmerkung der Redaktion

Der schwere Teil eines Essensprotokolls war nie das Essen, sondern dich dazu zu bringen, es beim Abendessen zu öffnen. Preis im App Store, deshalb je nach Land anders.

was du verlierst

xeine native App mit Widgets, Benachrichtigungen und sofortigem Kaltstart

xBarcode-Scan gegen eine gepflegte Datenbank verpackter Lebensmittel

xSync mit HealthKit, Google Fit und Apple Watch

xSerien, Coaching-Texte und das Gewohnheitsgerüst, das Tracking haften lässt

xdie Portionskalibrierung, die sie aus Millionen korrigierter Protokolle gelernt haben

Vorarbeit · nutze diese Projekte, wenn du nicht selbst bauen willst

Nichts, das wir guten Gewissens empfehlen können. Deshalb gibt es den Prompt.

auf X teilen ↗„Ich habe Cal AI mit einem Prompt ersetzt.“
Fragen
Kann ich Cal AI vibecoden?

Jein. Der Kern von Cal AI ist mit dem Prompt auf dieser Seite baubar. Echte Lücken bleiben: eine native App mit Widgets, Benachrichtigungen und sofortigem Kaltstart; Barcode-Scan gegen eine gepflegte Datenbank verpackter Lebensmittel.

Was kostet Cal AI?

Cal AI hat noch keinen von uns geprüften Europreis.

Was verliere ich beim Selbstbau von Cal AI?

Ganz ehrlich: eine native App mit Widgets, Benachrichtigungen und sofortigem Kaltstart; Barcode-Scan gegen eine gepflegte Datenbank verpackter Lebensmittel; Sync mit HealthKit, Google Fit und Apple Watch; Serien, Coaching-Texte und das Gewohnheitsgerüst, das Tracking haften lässt; die Portionskalibrierung, die sie aus Millionen korrigierter Protokolle gelernt haben. Wenn einer dieser Punkte für dich entscheidend ist, lohnt sich der Selbstbau möglicherweise nicht.

Gibt es eine Open-Source-Alternative zu Cal AI?

Keine ausgereifte Open-Source-Alternative, die wir guten Gewissens empfehlen können. Genau deshalb gibt es den Prompt auf dieser Seite.

Jede Woche sterben weitere Abos.

Fünf Vibe-Coding-Tipps, die Prompts dahinter und die Urteile der Woche.
Eine E-Mail, donnerstags. Mit einem Klick abmelden.

dauerhaft kostenlos · die Prompts bleiben auf der Seite, die Tipps kommen zu dir

$fünf Vibe-Coding-Tipps + neue Urteile. donnerstags.