tatami

AI SHIPPED PRODUCT

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.

STACK

Claude (product thinking + prompt engineering + prototyping) → Lovable (React/Vite build) → Vercel (deployment) + Microsoft Clarity + Tally

YEAR

2026

DURATION

Concept to shipped in 11 days, solo

THE CONSTRAINT

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.

3 KEY DECISIONS

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.

THE AI-SPECIFIC INSIGHT

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." The broader principle is that LLM tone is not a dial between formal and casual; it is a function of the role the model believes it is playing, and that role needs to be specified at the identity level, not the style level.

OUTCOME
  • Shipped from concept to deployed product in under two weeks using a Claude → Lovable → Vercel workflow, with no engineering support

  • Session logging consistently completed in under 15 seconds by beta testers, clearing the 10-second target for the minimal path

  • 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

WHAT I'D DO DIFFERENTLY

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.

PORTFOLIO

MORE CASE STUDIES

LIVE WEB APP

AI DESIGN AUDIT

AI SHIPPED PRODUCT

MOBILE PRODUCT DESIGN

INTERACTION STRATEGY

ENGAGEMENT SYSTEMS