
Tatami - AI Shipped Product · Mobile
Training Log
for BJJ Athletes
BJJ practitioners have no lightweight tool for tracking training consistency;
existing apps are either bloated with competition analytics or too generic to
reflect how the sport is actually practiced.
Role
Solo Designer / Builder
Stack
Claude (product thinking + prompt engineering +
prototyping) → Lovable
(React/Vite build) → Vercel (deployment) + Microsoft Clarity + Tally
Timeline
11 days
Year
2026
4 min read
LOGGING FLOW
The Constraint
The users most likely to pay
aren't the users to design for.
Hobbyists have the most retention potential and the least tolerance
for friction; and the coaching layer needs rich data to work.
The core tension was that the users most likely to pay - competitors - are not
the users the product should be designed for. Hobbyists outnumber competitors
significantly and have higher retention potential, but they are also the least
tolerant of friction. Designing for a user who will abandon the app if logging takes
longer than ten seconds while simultaneously building an AI coaching layer that
requires rich data to produce useful output is a genuinely difficult constraint to
resolve.

Log Session - the three-tap minimal path
3 Key Decisions
Three calls that resolved the
friction-versus-data tension.
Each decision traded a richer default for the harder
choice that kept the log fast enough to actually get used.
Stripped the log form to three taps.
The options were a comprehensive session form (positions, duration, session type,
reflections, date, felt rating) or a minimal one. I cut everything non-essential and collapsed
the date field entirely since 90% of logs happen same-day. The second-order reason: an AI
coach is only as good as the data it receives, and a form people skip produces worse
training data than a form people actually complete. Completion rate beats field richness.
Gave the AI coach persistent memory across weeks.
A stateless weekly summary - regenerating from scratch each time - was the obvious
implementation. Instead I stored each week's coaching recommendation in the database and
injected the last three as structured context on every subsequent API call. The reason this
mattered specifically here: hobbyist users don't train with a coach present, so the sense of
continuity - a coach who remembers what they told you last week - is the entire trust
mechanism. Without it the feature reads as a novelty. With it, it reads as a relationship.
Excluded submission tracking deliberately.
Every comparable app includes it. I removed it entirely from the training room context,
keeping it only as a future competition-specific feature. The second-order reason: tracking
taps in training changes the social dynamic of the room. Hobbyists train in community gyms
where the training environment is the product's real competition; if the app makes the mat
feel like a scoreboard, people stop using it to protect their relationships with training
partners. The product's job is to support the training room, not to surveil it.

Progress view - no submission tracking, no scoreboard
The AI-Specific Insight
Tone isn't a style dial; it's an
identity you have to specify.
“
LLM tone is not a dial between formal
and casual; it is a function of the
role the model believes it is playing.
The first version of the coaching prompt produced output that read as punitive; users
were being told they missed their goal in a tone that felt like a reprimand. The failure
mode was that "direct and honest" as a tone instruction reliably collapses into
authoritative and judgmental when the model has negative data to work with.
The fix was not softening the tone but reframing the persona: from "coach reviewing
performance" to "experienced training partner sharing an observation." That role needs to
be specified at the identity level, not the style level.

Coach feedback - reframed as a training partner, not a scorekeeper
Outcome
Shipped fast, and the minimal path held up.
11 Days
Concept → Shipped
Solo, using a Claude → Lovable →
Vercel workflow, with no engineering
support.
<15s
Session Logging Time
Consistently completed by beta
testers, clearing the 10-second target
for the minimal path.
Week 2+
Coach Memory Kicks In
Noticeably more specific output once
the coach had prior weeks of context
to draw on.
The AI coach memory feature produced noticeably more specific output after week
two; but only for users who logged reflections, which was fewer than half.
The reflection fields are optional and most users skip them, which means the
coaching layer underperforms for the majority of the free tier.
One Thing I'd Do Differently
Reflections shouldn't compete
with the ten-second log.
Make the reflection fields appear as a separate post-session prompt - a push notification two hours after logging - rather than optional fields at the bottom of the log form where they get skipped.
ALONSO ROSADO
AI-first Product Designer shipping full
products, end to end.