MATS: AI Shipped Product · Mobile

Note-Taking Tool

for Martial Artists

Every technique you learn on the mat is gone by morning; MATS is a post-training logging system that structures messy brain dumps into a queryable backlog using an AI chat interface.

Role

Solo Designer / Builder

Stack

Claude (product thinking +

prompt engineering +

prototyping) → Lovable

(React/Vite build) → Vercel

(deployment) + Microsoft

Clarity + Tally

Timeline

3 weeks

Year

2026

MATS - TECHNIQUES

The Constraint

Built for the exact moment

users are least willing to type.

Exhausted, on a phone, right after training;

every extra tap is a reason not to log at all.

The core interaction happens when users are physically exhausted, on their

phones, immediately after training. Every additional tap, field, or decision is a

reason not to log. The AI chat had to be fast and forgiving enough to accept

genuinely messy input; not cleaned-up notes, but "got submitted with an arm

bar need to review gordon's escape instructional" typed with sweaty thumbs.

3 Key Decisions

Three calls that kept the log fast and the data usable.

Each decision traded a familiar pattern for the harder one

that fit how martial artists actually think about their training.

Delete on completion, not archive.

The alternative was preserving completed entries in an archive view; a common pattern in

task managers. I chose deletion because MATS is an action queue, not a journal. Every

completed technique staying in the list increases the cognitive load of scanning what still

needs work. The tradeoff is real: one beta user lost a technique he wanted to reference later,

which surfaced a genuine product tension between "tool for action" and "tool for memory."

That tension is now a v1.1 decision, not a bug.

Constrained JSON action schema over free-form AI output.

The alternative was letting the AI respond conversationally and parse intent from natural

language each time. I chose a strict JSON block appended at the end of every response -

four action types only, one block per message - because it made the AI's database writes

deterministic and auditable. Free-form output works in demos. It fails at 11pm when a user's

note is ambiguous and the AI has to decide whether "worked the guard" means add a

technique or advance an existing one.

Two modes with sub-tabs over a unified list.

The alternative was a single filterable list of all entries. I chose a hard split between TRAIN

(pre and post-training workflow) and WATCH (instructional library) because the mental

context is completely different; one is about tomorrow's mat session, the other is about a

study backlog that spans weeks. Mixing them in one list with filters would have made the app

faster to build and slower to use.

TRAIN and WATCH - split by mental context, not entry type

The AI-Specific Insight

The AI failure mode here wasn't wrong

answers; it was too much helpfulness.

Specialized tools often need speed and

invisibility over transparency and confirmation.

The failure mode I hit wasn't the AI giving wrong answers; it was the AI being too helpful.

Early prompt versions produced empathetic, conversational responses with approval

gates before adding entries to the database. That pattern works for a general assistant.

It's wrong for a post-training logging tool, where the user wants to dump information and

trust that it was handled, not review a confirmation card.

The fix was explicit tone instructions and a hard schema constraint: act first, confirm in

one line, never ask. The broader principle is that LLM default behavior optimizes for user

trust in the general case.

Outcome

Unprompted adoption within 72 hours of shipping.

72 Hrs

Unprompted Beta Adoption

Two beta users logging real training sessions within 72 hours of deployment; without a prompt from me.

3 Weeks

Concept → Shipped

Solo, end to end: product thinking, prompt engineering, build, and deployment.

Two pieces of unsolicited feedback in the first week: one bug report (line breaks not

preserving) and one fundamental product challenge (deletion vs. archive); both

surfaced real design decisions I had documented but not tested.

The TODAY tab - the pre-training game plan feature - was not discovered or used

by either beta user without explanation, which means the onboarding is not doing its

job regardless of how well the feature works.

One Thing I'd Do Differently

Test onboarding first; build it last.

Build the onboarding last but test it first; I wrote three

screens that explained the product accurately and none

that communicated what to do in the first sixty seconds.

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.