// op_002 — case study Live
Vitality
// the problem
Wellness apps almost always pick one lane — fitness, sleep, nutrition, or mental health — and ignore how those pillars actually interact. A great workout undone by four hours of sleep, or a strong nutrition week wrecked by stress, never shows up because no single-pillar app is looking at the whole picture. Generic AI coaching compounds the problem: advice that's not grounded in someone's actual logged history reads as generic and gets ignored within a week.
// architecture decisions
Cross-Pillar Scoring
A unified daily wellness score synthesizes five pillars into one number, but the AI Coach reads the raw cross-pillar history underneath it — not just the score — so guidance is grounded in what actually happened, not a single composite metric.
Background Location
GPS workout tracking runs as a background location service via expo-location, recording full route geometry without keeping the app in the foreground — critical for a feature people use mid-run, not mid-tap.
HealthKit Sync
Bidirectional HealthKit integration reads and writes steps, heart rate, sleep, and workouts — Vitality becomes a participant in the user's existing health data graph instead of a walled-off silo.
Monetization
Free tier covers core tracking; RevenueCat-style tiering (here via a Node/Express backend on Railway) gates the AI Coach, deep trend insights, and meal photo scanning behind a $19.99/month Premium subscription.
// capabilities
Five tracked pillars — fitness, sleep, nutrition, mental health, life habits — feed a unified daily wellness score. The AI Wellness Coach runs on Claude through a Node/Express backend, reading cross-pillar logged data to ground its guidance in actual history. AI meal scanning uses the device camera to estimate calories and macros in real time. Zustand manages client-side state across the whole pillar system. Now live on the App Store.
// related builds