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.

Have a project in mind?

Let's work together

ALONSO ROSADO

AI-first Product Designer shipping full

products, end to end.

© 2026 Alonso Rosado. All rights reserved.