AI First
Conversational design
Design enginner

50 users. 15 days. $0 in ads

An AI fitness coach that calibrates from behavior, not a form. No self-reported fitness levels, no generic routines. What started as a personal coach became a retention program for a gym with 800 members.

Built and shipped in one week as an MVP. The product didn't need marketing, it needed to work well enough that users told other users.

Role

Product designer / AI Designer Enginner

Year

2026

Product

B2C

Platform

Progressive Web App

Product Snapshot

This case study documents a pivot from "assign routines by self-reported fitness level" to "build a coach that reads behavior and calibrates from real data." The AI agent consults a RAG system built from biomechanics documentation and muscle anatomy to generate personalized training plans, not templates.

In 15 days with zero official announcement, heybro reached 50 active users. All completed at least 2 sessions per week. 5 members who were about to cancel their gym membership didn't. Because they felt attended to by their personalized AI coach.

Context

Gym · 800 members · 4 coaches

Problem

Attention at scale

Solution

AI coach that learns from behavior

Team

Solo Product Designer / AI Designer Enginner · Pro coaches

Outcome

50 active users · 5 retained members

Scope

Strategy · AI behavior · RAG · UI/UX

STACK

Stitch · Figma · Claude · Codex

heybro-01-context.webp

Context

800 members. 4 coaches. The math was never going to work.

heybro began as a gym retention tool. The initial hypothesis was simple: if members had structured training plans, they would stay longer.

Research changed the direction. Members weren't leaving for a better gym or a lower price. They were leaving because they felt alone, unheard, and unattended. 4 coaches for 800 active members made consistent personal attention mathematically impossible.

The product needed to deliver what the gym couldn't scale: a coach that knew each member, adapted to their behavior, and stayed present every session.

The Real Problem

Members weren't leaving for a better gym. They were leaving because nobody noticed.

I think.. sometimes I have an idea what exercises to do. But I don't know if I'm doing the right ones for me, at the right weight, in the right order.

The problem was not access to workout routines. It was the gap between a generic plan and a plan that felt built for this specific person, today, given what they actually need to progress.

EvidenceWhat it meantProduct decision
Members felt unattended despite payingThe problem was emotional, not informationalDesign a coach that feels present every session
Self-reported level was unreliableLabels didn't match actual capacityBuild calibration from behavior, not a form field
Generic routines felt dismissivePersonalization is a trust signal, not a featureGenerate every routine — never serve a template
Members who skipped often stopped returningBreak point was abandonment, not dissatisfactionDesign an explicit recovery behavior for missed sessions
Traditional fitness appheybro model
User selects a plan from a libraryCoach generates a plan from behavior and biometrics
Fitness level is self-reportedLevel is inferred and calibrated over time
Rest times are fixed defaultsRest times are calculated from biomechanical analysis
Missed sessions reset or ignoreMissed sessions trigger a recovery adaptation

The Insight

Self-reported fitness level is the weakest signal in the product.

Week one. MVP live. Users onboarding. The form asked: what's your fitness level? Users selected beginner. We gave them beginner routines. They hated them.

Not because the exercises were wrong, because the routines felt generic. Selecting "beginner" didn't mean they wanted basic movements. Their body knew more than the label did.

The opposite was also true. Users with a year of gym experience called themselves advanced, but didn't want to be assessed at all. They wanted the coach to figure it out.

One week of interviews. One clear conclusion: the coach needed to read behavior, not labels.

InsightEvidenceDecision
Beginners rejected beginner routines"This feels too easy" — post-MVP interviewsRemove fitness level from onboarding entirely
Advanced users didn't want to be assessed"Don't ask me, just give me a good routine"Build hypothesis from biometrics, refine from session data
Generic routines broke trust fastSession abandonment in week 1 pre-RAGDefine biomechanics + anatomy RAG before generating any routine
Missed sessions were primary churn triggerMember exit interviews at gymRecovery behavior is core, not an edge case
heybro-02-self-preception.webp

The Decision

More questions at signup was the wrong answer.

The obvious solution was a smarter form. More questions. More granular self-assessment. We rejected it. More questions before the first routine meant more friction before value, and it still relied on self-perception, which we already knew was wrong.

Chosen

Remove fitness level from onboarding

Rejected

More granular self-assessment form

Rationale

Self-perception is unreliable. Behavior is the signal.

Tradeoff

Coach needs more sessions to calibrate accurately.

Implication

Week 1 is a calibration phase, not a final plan.

Chosen

RAG from biomechanics + anatomy documents

Rejected

Generic templates or LLM-only generation

Rationale

Generic output breaks trust faster than no output.

Implication

Every routine is grounded in validated training science.

Chosen

Generate 3 plan options: Progresiva · Balanceada · Intensa

Rejected

Single assigned routine

Rationale

User agency increases commitment and surfaces preference data.

heybro-03-workout.webp

Coach Architecture

The architecture was conceptual before it was technical.

User input becomes profile signals. Profile signals combine with RAG retrieval from biomechanics and anatomy. The result determines routine structure, exercise selection, load progression, and rest intervals.

RAG Query Flow

01

User Profile Input

Age · Weight · Height · Goal · Training preference · Days

02

RAG Query

Biomechanics per exercise + Muscle anatomy per group

03

Coach Generation

Exercise selection · Load calculation · Rest intervals · Series progression

04

3 Plan Options

Progresiva · Balanceada · Intensa

05

User Selection

Choice signals training preference for future calibration

06

Active Plan

Weekly adjustment · Load monitoring · Phase progression

Phase progression across the full training plan:

Phase 1

Base

Phase 2

Acumulación

Phase 3

Afinación

Phase 4

Especialización

VariableSourceOutput
Exercise typeBiomechanics RAGBase rest window
Muscle groupAnatomy RAGRecovery modifier
Load intensityUser session dataAdjusted rest time
User historyLogged sessionsProgressive calibration

Rest time is not a default. It is a calculated output from the biomechanical analysis of each exercise for each user.

heybro-04-architecture.webp

Behavior Framework

AI behavior mattered more than UI polish.

The product value lived inside how the coach responded to real training situations, not ideal ones. The same interface could either keep a member on track or create the exact friction that leads to abandonment, depending on how the system behaved.

Adaptation

When user misses a session

Analyze missed day, extract highest-value exercises, combine with current session into a recovery plan.

Use when: continuity matters more than plan purity.

Progression

When sessions are consistent

Monitor load mid-week, adjust for next session, prepare user for next training phase.

Use when: the user is ready to move forward.

Recovery

When user reports discomfort

Query RAG for biomechanically safe replacement, flag rest window, adjust surrounding exercises.

Use when: safety matters more than plan completion.

Behavior ruleWhy it existed
Never serve a generic routineGeneric output breaks trust faster than no output
Never ask for fitness levelSelf-reported labels are less reliable than behavioral signals
Never ignore a missed sessionAbandonment starts with the first uncovered miss
Never apply a fixed rest timeRest is a biomechanical calculation, not a default
Never let discomfort go unaddressedSafety behavior is a core feature, not an edge case
heybro-05-behavior.webp

Interaction Design

Every interaction pattern existed to reduce friction, not add features.

CapabilityWhy it existsWhat changed
5-step onboarding, no level questionReduce friction before first valueCollects behavior signals, not labels
3 generated plan optionsUser choice signals preference for calibrationAgency increases plan commitment
Time-aware home copyMotivation is contextual, not generic"Los nocturnos entrenan diferente, dale."
Biomechanical rest timersRest is part of training, not dead timeCoach stays present between sets
Missed session recovery modalAbandonment starts with first uncovered missPlan adapts. Goal doesn't.
Discomfort replacementSafety is a coach responsibilityRAG finds safe alternative immediately
Phase progress trackerUsers need to see what coach is building towardBase → Acumulación → Afinación → Especialización
Radar chart by muscle groupBalance visibility prevents overtrainingCoach surfaces imbalance before user feels it
heybro-06-interaction.webp
heybro-07-interaction.webp

System Flows

Four flows that define how the coach behaves.

Flow 1. Onboarding to First Routine

01

Landing

"¿Sientes tu cuerpo estancado?"

02

Step 1. Profile

Name · Sex · Age · Height · Weight

03

Step 2. Structure

Fullbody / Isolated groups / Upper-Lower + Load type

04

Step 3. Training days + Start today?

Muscle group preference

05

Step 4. Goal

Muscle · Definition · Fat loss · Endurance · Feel better

06

Step 5. Account

Gym · WhatsApp · Password

07

Coach Generation

RAG query: biomechanics + anatomy

08

3 Plan Options → User selects → Active plan

Progresiva · Balanceada · Intensa

Flow 2. Missed Session Recovery

01

User opens app

Coach detects missed session from previous day

02

Recovery modal

"[Name], el [day] no entrenaste. ¿Quieres combinar ese día con tu rutina de hoy?"

Yes

Combined session: highest-value exercises from missed day + today's routine

No

Continue normal routine: plan adapts next week automatically

Flow 3. Active Session

01

Warm-up reminder modal

"Antes de empezar, dedica 5 minutos a calentar"

02

Exercise N of total

Anatomy illustration · Series progression · Log reps + weight

03

Rest timer between series

Biomechanically calculated · "Descansa, bro. Te lo ganaste."

04

Rest timer between exercises

Preview next exercise during rest

05

Session complete

"Bien ahí bro, le diste duro hoy!" · Summary: weights logged

Flow 4. Discomfort / Injury

01

User reports discomfort

Via ⚠️ icon on exercise or direct input

02

RAG query

Biomechanically safe replacement for same muscle group

03

Replacement presented

Rest window flagged · Surrounding exercises adjusted · Session continues

Impact

15 days. Zero announcement. Black and white posters on gym walls.

50
Active users
First 15 days
100%
Completed 2+ sessions/week
All 50 registered users
5
Members retained
Who were about to cancel
10
Following full plan
Complete structured program
1wk
Concept to working MVP
Built with Claude + Codex
$0
Marketing budget
Posters only
MetricMeaningDecision generated
50 users in 15 days, zero marketingOrganic adoption signalValidate at scale before investing in acquisition
100% completed 2+ sessions/weekCoach reduced friction of showing upKeep calibration as core retention mechanism
5 retained membersRetention has direct dollar value for gymRetention is the primary business KPI, not engagement
10 following full planTrust in coach grows over timePhase design matters — each week builds toward the next
1 week to MVPAI tools accelerated without reducing depthUse AI for speed. Keep decisions human.

These are early-stage signals, not scale claims. The useful question is what each metric changes in the product, not whether the product has proven long-term growth.

Reflection

Three things that are true about AI products after building this one.

The first lesson was that an AI product is not defined by the presence of a model. It is defined by how the model behaves when the user's context is incomplete and the routine has real consequences for their body.

The second lesson was that self-reported data is the weakest signal in fitness products. Behavior tells the truth. Labels reflect aspiration.

The third lesson was that retention is designed, not earned. The missed session recovery behavior, the rest timer language, the time-aware home copy, none of those are decoration. Each one reduces the probability that the user decides not to come back.

What I'd Validate Next

The questions that matter after the first 50 users.

  • Does coach calibration accuracy improve measurably after week 2 vs week 1?
  • Does missed session recovery behavior reduce weekly churn vs no intervention?
  • Does showing 3 plan options increase commitment vs a single assigned plan?
  • Does the phase tracker increase session completion rate in weeks 3–4?
  • Who owns the biomechanics RAG document maintenance, and at what cadence?
  • Can the coach detect plateau patterns and suggest phase advancement proactively?
AI Product Design
RAG Systems
Behavior Design
Conversational Coach
Interaction Design
Lean UX
Jobs To Be Done
User Interviews
Data Driven
0→1

Recommended