Randori
The jiu-jitsu training log. Built because I train.
Every fitness app files jiu-jitsu under Other — an hour of the hardest training a body can do, logged as a calorie guess. I wanted three things after class: what did tonight cost me, what caught me, and how do I make sure it doesn't catch me again. Randori is those three questions, answered properly.
I built this for me, on the mat, after class
I do jiu-jitsu. Most nights end the same way: sitting on the edge of the mat, trying to remember what actually happened in the last hour — which rolls emptied the tank, which armbar I walked into twice, what my coach said in the thirty seconds I could still hear him.
The apps I tried wanted me to be a runner. The notebooks got soaked. So I built the thing I kept reaching for and not finding: a log that speaks jiu-jitsu — effort, positions, submissions, notes in my own words — and turns tonight's mistakes into tomorrow's study plan.
That's the whole product brief. Everything in the app answers one of my three after-class questions, and anything that didn't got cut.
The physical truth of a night of training
Start a session and the Watch (or a paired chest strap) streams heart rate live while you roll. Effort is logged per round, in the seconds between rolls — one thumb, gloves-off honest. When class ends you have the real shape of the night: how hard, how long, how much was left in the tank.
Stop getting caught by the same thing
This is the feature I built the app to get. You write what happened in your own words — a note, not a dropdown — and Randori matches it to film-backed lessons from instructors worth learning from. Get caught in an armbar, see the defense. Then the counters to the counters.
got caught in an armbar from closed guard, couldn't get my elbow back in time
Stacking Armbar Defense
The matching happens on your iPhone — your notes never leave your device to be understood. The library runs white belt through black, so the answer meets you at your level.
The belt, made honest
Jiu-jitsu progress is famously opaque — years between belts, promotions that arrive when they arrive. Randori counts what you can control: sessions accumulate into an honest forecast of where your training is heading, so the long road has mile markers.
A gym is people. So is the app.
You don't train alone, and the log shouldn't pretend you do. Connect with the people you actually roll with and share sessions — a social layer that runs on CloudKit's public database. No accounts, no server of mine holding your data.
Community features carry community responsibilities: user reporting shipped in 1.0, wired into the studio's own moderation tooling, so a report filed from the mat reaches a human the same day — not a backlog.
Small, honest machinery
SwiftUI on iPhone and Watch. Sessions sync through your private iCloud and write to Apple Health as real workouts. Even the anonymous usage telemetry defines a session the way a training log would — a burst of activity, ended by half an hour of quiet:
enum SessionTracker { static func noteActivity(now: Date = .now) { if let last, now.timeIntervalSince(last) >= quietGap { rotate(at: now) // ≥30 quiet minutes = a new session } last = now } }
Twelve languages at launch, from Japanese to Arabic — because the sport's vocabulary is already global, and the app should meet it there.
Your training, finally counted.
Randori 1.0 is on the App Store for iPhone, with Apple Watch live sessions.