Skip to content
    SHIPPEDMobileReact NativeAI Coach

    SquadPax, Squad Fitness App

    Client, Trenith in-house product

    A squad-accountability fitness app built end to end in React Native: AI coach with memory, health-data-aware training, and a store-ready release pipeline.

    In TestFlight, App Store submission in progress

    What was broken

    Solo fitness tracking apps lose users fast. SquadPax bets on squad accountability: friends train together, see each other's consistency, and get coached by an AI that knows their actual training history. That demands a real backend, server-enforced privacy, and an AI layer that reads structured data instead of inventing numbers.

    What we built

    Trenith built the full product in-house: an Expo React Native app on a Supabase backend (Auth, Postgres with row-level security, Realtime, Storage), an AI coach with retrieval-augmented memory fed by logged workouts and daily health activity from Apple Health and Android Health Connect, meal-photo recognition, squad leaderboards, a RevenueCat paywall, and a separate Next.js admin app. Privacy is enforced server-side: an 18+ age gate, scheduled photo purge, and hardened row-level security shipped as numbered migrations.

    AI & automation layer

    AI coach with retrieval-augmented memory over training history
    Coach context fed by steps, active energy, and sleep
    Meal-photo recognition across world cuisines

    The stack

    Expo React NativeTypeScriptSupabasePostgres RLSRevenueCatNext.js admin

    Outcomes

    873-exercise library with set logging, rest timer, and PR history
    26 numbered database migrations covering security, privacy, and age gating
    Apple Health and Android Health Connect import wired into coaching
    EAS release pipeline with builds submitted to App Store Connect

    What this proves

    Trenith ships complete mobile products, not prototypes: one React Native codebase, a production backend, an honest privacy layer, and the store pipeline to deliver it.

    Sitting with the same problem?

    A 60-minute call. You leave with a one-page scope and a fixed number, or a straight "this isn't for us."