01 / Product
Natty
Workout logging is easy. Learning from it usually isn't. Natty keeps the routine quick and local, then uses the history to offer useful coaching when it has earned the interruption.
The approach
Fast for the everyday action, thoughtful around everything else.
Training data is recorded locally first, so a poor connection never gets between a person and their session. Private cloud backup adds continuity across devices, while the coaching layer is kept separate from the core journal.
Attached notes
Decisions made along the way
Where local-first ends
Kept workout capture on-device and treated Supabase as private backup, rather than making a network round trip part of every set.
Giving coaching a boundary
Moved coaching behind an Azure endpoint so prompts, provider choices and safety rules can change without rebuilding the client.
One codebase, a useful web version
Used Expo to keep mobile and web close enough to share the product, while accepting that each surface still needs its own care.