
Floww
Floww is a fitness app built around WAVE, an AI coach that sees the whole picture (training, nutrition, recovery and habits) instead of four apps that never talk to each other. The app runs on Flutter with a strict MVVM structure, and three visual modes (flow, steady, restore) that re-theme the entire surface at runtime.
Long story short
Most people track fitness across separate apps: one for workouts, one for food, one for sleep, and none of them know what the others are saying. Floww pulls all of it into one adaptive system. Training, nutrition, recovery and habits feed a single Floww Score, the score sets a Floww State (flow, steady or restore), and the state re-themes the whole app at runtime, so how you're doing is visible before you read a number. Training adapts to how you move, with separate modes for the gym, calisthenics and yoga.
WAVE, the AI coach, sits on top of that system. Because it sees every input, it can do things a single-purpose app can't: adjust a workout after you report a shoulder niggle, explain exactly which factors are pulling your score down, or log a meal from a quick message. It's meant to feel like one coach who knows the whole picture, not a chatbot bolted onto a tracker.
The interesting part is the food scanner. You photograph a meal, and a Cloud Function hands it to OpenAI's vision model, which returns ingredients, macros and a health score. The result is validated server-side before it reaches the phone: macros have to sum to their ingredients, nothing negative, confidence bounded, so a model that guesses can't quietly corrupt someone's log.
Auth is Firebase, with Google and Apple sign-in, and every route on the backend verifies the ID token before it does anything. Workouts feed a muscle-recovery map that tracks which groups are still under load. Apple Health and Health Connect sync steps, sleep and heart data. Everything the user generates lives under their own Firestore document, and account deletion recursively wipes it: profile, subcollections, AI usage records and the auth user.
The backend is one standalone Cloud Function per endpoint, each a small Express app sharing middleware and a single response envelope, so they scale and deploy independently. Zod schemas are the data models. The landing site is a separate Next.js build with a Firestore-backed waitlist.



