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.

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.

Decisions made along the way

  1. 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.

  2. Giving coaching a boundary

    Moved coaching behind an Azure endpoint so prompts, provider choices and safety rules can change without rebuilding the client.

  3. 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.