Inspiration

I'm a NASM-certified personal trainer and corrective exercise specialist in Santa Barbara. Most of my clients are post-injury or older adults—people who don't just need a workout list. They need someone watching their form, adjusting the moment something hurts, remembering what happened last time, and explaining why today's session looks the way it does.

Most fitness apps feel like content libraries with a chatbot stapled on. I wanted the opposite: a coaching brain that reasons like a trainer, with the camera and voice serving as the ways that reasoning reaches you mid-set.

One problem: I can't write code. So I built Tip Top Fitness by directing OpenAI Codex.

Throughout this writeup, “we” means me and Codex—there is no team behind this.

What it does

Tip Top Fitness connects programming, live coaching, form analysis, memory, and safety into one continuous training loop.

  • Sees your form. Native on-device pose tracking uses VisionCamera and MediaPipe to detect 33 landmarks. It draws a predicted 30 FPS skeleton, checks whether your full body and required camera angle are visible, counts approximate reps, scores movement quality, and gives one prioritized corrective cue at a time—the way a trainer would cue instead of overwhelming someone with five corrections at once.

  • Keeps video private. Raw Analyzer video stays on the device. Only small structured signals—such as the active exercise, placement status, form score, rep state, and current coaching cue—can be shared with the coach.

  • Coaches you live. Two-way speech-to-speech coaching runs through the OpenAI Realtime API over WebRTC. The user can interrupt naturally, while bounded echo suppression prevents the phone's own speaker from accidentally interrupting the coach.

  • Runs the workout hands-free. One persistent voice coach spans warm-up, exercises, rests, Analyzer, cooldown, and post-workout review. Users can say things like “Go to Analyzer,” “Log ten reps at fifty pounds,” “Skip this exercise,” “Go back,” “What’s next?” or “Why did you choose this?” without leaving the workout.

  • Acts instead of only answering. Spoken commands can navigate the app, change equipment, substitute exercises, log sets, skip rests, focus the workout on a muscle group, or accept a corrective mobility detour. Deterministic action handling runs before free-form AI responses so important commands are not merely acknowledged—they are carried out.

  • Programs like a trainer. An NASM-OPT-adapted periodization engine manages stabilization, strength, and power progression. It considers fitness level, goals, training frequency, available equipment—including details such as whether the user owns a bench—injury notes, recent sessions, movement preferences, rest periods, tempo, and phase eligibility.

  • Explains every decision. Each exercise has a plain-language Why explanation grounded in the current workout. The coach can explain why a movement was selected, why a substitution is appropriate, what comes next, and how the session fits into the larger training phase.

  • Adapts safely. Pain reports follow a deterministic safety ladder. The system can suggest an appropriate substitution when discomfort is manageable, but sharp, worsening, or concerning pain routes to stop guidance and professional care instead of letting the model improvise a workaround.

  • Remembers the athlete. Signed-in coaching can use bounded session history, saved preferences, prior substitutions, recurring form cues, equipment changes, and coaching memories. That information can change future programming—not just decorate the prompt.

  • Adds corrective work when needed. Repeated form-cue episodes can trigger a short corrective stretch or movement detour. The coach explains why it is being suggested, accepts a natural yes/no response, and then returns the user to the workout.

  • Works quietly too. A text coach is available when speaking is inconvenient. It shares the same workout context and safety boundaries as the voice coach.

  • Supports human coaching. Tip Top Fitness is positioned as a tool, not a replacement for a professional. Users can request a paid Coach Check-In in which a certified trainer reviews the relevant flags before a short call.

How to judge it

The native iOS beta is the primary judge experience and has been approved for external TestFlight testing:

https://testflight.apple.com/join/ddHQ3CJk

No Tip Top Fitness account or access code is required.

For the fastest path through the experience:

  1. Open the app and tap Start Demo.
  2. Select Dumbbell Goblet Squat.
  3. Open Why to see why the exercise was programmed.
  4. Ask the Text Coach a question.
  5. Start Voice Coach and say “Go to Analyzer.”
  6. Allow camera access and perform one controlled squat.

The native app runs pose processing fully on-device, keeps the Voice Coach connected across the workout, and demonstrates the complete Plan. Coach. Analyze. Adapt. loop.

Two things are deliberate while testing:

  • Camera rep counts are approximate and are not presented as authoritative workout logging.
  • The coach will not talk past a serious pain report. Sharp or worsening pain produces stop and professional-care guidance rather than an AI-generated workaround.

How we built it

GPT-5.6 was the thinking partner

I spent Build Week brainstorming with GPT-5.6 in ChatGPT voice mode—talking through coaching behavior, safety decisions, product ideas, and problems I found while exercising with the app.

I translated my trainer instincts into concrete behaviors: what the coach should notice, what it should say, when it should stay quiet, when it should change the workout, and when it should refuse to continue.

Those conversations became acceptance criteria for Codex.

Codex was the builder

My role was trainer knowledge, product direction, real-device testing, and final acceptance. Codex traced the code, implemented the behavior, created regression tests, diagnosed native crashes, prepared signed builds, deployed the supporting services, and iterated against what I observed on the phone.

The process became a tight loop:

  1. I described the coaching behavior in trainer language.
  2. Codex translated it into implementation and tests.
  3. I exercised with the resulting native build.
  4. I reported exactly what felt wrong.
  5. Codex diagnosed and corrected it.
  6. We repeated until the live-device behavior matched the coaching intent.

OpenAI runs the product

The OpenAI Realtime API powers live speech-to-speech coaching and spoken post-workout interactions. Server-side OpenAI models power the text coach and narrated insights.

The runtime coach receives carefully bounded context containing the athlete's profile, training phase, workout structure, active exercise, equipment, recent session history, and structured Analyzer state. It does not receive raw camera video.

Static coaching instructions are separated from frequently changing workout state to improve Realtime prompt caching and reduce repeated token use.

The rest of the system

  • Expo and React Native power the native iOS and Android app.
  • VisionCamera and MediaPipe run the native form-analysis pipeline.
  • Supabase handles authentication, profiles, workout sessions, set history, coaching memories, and entitlements.
  • RevenueCat manages native subscription state.
  • A shared pure-JavaScript core package contains workout programming, exercise resolution, safety rules, cooldown selection, and AI context.
  • Server-owned metering tracks connected Realtime time and text usage without exposing service credentials to the client.
  • More than 200 registered exercise demonstrations support programming and user-requested substitutions.

Challenges we ran into

Making voice feel continuous

A workout crosses many screens, but users should experience one coach. Early versions restarted or lost context during exercise transitions. Other versions could stall on the first response, create duplicate sessions, react to their own speaker output, or leave a late connection alive after the user cancelled.

We built one session owner, explicit connection generations, local command routing, context refreshes, bounded echo suppression, and clear recovery behavior so the coach could remain present without becoming unpredictable.

Connecting native vision to React Native

Pose inference was only one part of the problem. Camera coordinates, rotation, mirroring, native-to-JavaScript bridge latency, rendering, and unnecessary screen updates all affected the visible skeleton.

We added coordinate correction, latest-frame coalescing, memoized coaching context, direct landmark publication, One-Euro smoothing and prediction, and a 30 FPS imperative overlay.

We also traced a TestFlight Analyzer crash to a missing JavaScript context parameter rather than incorrectly blaming VisionCamera or MediaPipe.

Letting AI act without surrendering control

Natural language is flexible, but workout navigation and pain handling cannot rely on the model merely choosing the right sentence.

We separated actions from conversation. Deterministic local logic handles commands, logging, safety ladders, navigation, corrective offers, and exercise resolution. OpenAI provides natural conversation, explanation, and adaptation around those verified actions.

Making a pre-existing project honestly judgeable

Tip Top Fitness existed before July 13. Before Build Week, it already had onboarding, workout generation, early form analysis, OpenAI coaching surfaces, and Supabase persistence.

The Build Week work was the meaningful extension that connected and hardened those pieces into an end-to-end, device-tested coaching system. We preserved the pre-period Git boundary and created a dated evidence record rather than presenting the entire project as new.

Creating immediate access without weakening production security

Judges needed to experience the product without creating an account, but anonymous access could not mean unlimited access to paid APIs.

We built an isolated, seeded native Demo Mode with its own voice and text allowances, protected destructive and paid operations, and created a public TestFlight path requiring no Tip Top Fitness credentials.

Accomplishments that we're proud of

  • Shipping a public external TestFlight beta that judges can install without an account or access code.
  • Turning separate AI features into one coaching loop: plan, explain, coach, analyze, adapt, and remember.
  • Maintaining one Realtime session across the workout while allowing reliable voice navigation and natural interruption.
  • Running the complete pose-analysis pipeline on-device without uploading raw workout video.
  • Making safety deterministic instead of trusting a language model to improvise around pain.
  • Building a native Analyzer that survived real TestFlight debugging, including camera latency, rendering lag, a Hermes crash, and coordinate problems.
  • Adding native CI, a crash-recovery boundary, diagnostics, and fatal-error reporting instead of treating the submission as a disposable demo.
  • Completing multiple signed Build Week release cycles, culminating in iOS TestFlight build 74.
  • Doing this as a non-technical trainer working directly with GPT-5.6 and Codex, without a conventional engineering team.

What we learned

The most important lesson was that the model should not be the entire product.

OpenAI is strongest when it has trustworthy context and well-defined tools. MediaPipe handles perception. The periodization engine handles program structure. Deterministic code handles actions and safety. OpenAI connects those pieces through conversation, explanation, and reasoning.

We also learned that continuity matters more than verbosity. A short coach response grounded in the exact exercise, set, equipment, and previous conversation feels more intelligent than a long generic answer.

Real-device testing changed the product repeatedly. Problems such as audio routing, false interruption, camera-coordinate errors, animation latency, and native crashes were invisible in a simulator. Building signed releases and actually training with them was essential.

Finally, I learned that being non-technical does not mean being unable to build software. My coaching expertise became product logic, and Codex gave me a way to express that logic as a working system—as long as I could define the behavior clearly and test it honestly.

What's next for Tip Top Fitness

The immediate next step is broader real-device testing before public App Store and Google Play release.

After that, I want to:

  • Expand qualified form-analysis coverage while maintaining movement-specific validation standards.
  • Improve longitudinal coaching so recurring form patterns and training responses influence future sessions more visibly.
  • Add more useful progress insights without inventing certainty from imperfect fitness data.
  • Refine accessibility, measurement-unit preferences, and small-screen behavior.
  • Continue testing with older adults and post-injury clients—the people whose needs inspired the product.
  • Develop the Coach Check-In pathway so AI observations can be reviewed by a real certified trainer when human judgment matters.

The goal is not to replace trainers. It is to make thoughtful, responsive coaching available between human sessions—and to give people something far more useful than another workout list.

Built With

Share this project:

Updates