
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 → Lovable → Vercel + Microsoft Clarity
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.
MORE CASE STUDIES
