Booking, the mat clock, pairing, round reviews, chat, coach tools and the office — a single install on every phone and the TV on the wall. This is the full feature list, with the clock itself to play with.
A working copy of the wall clock. On the real TV it also shows the roster, the pairs in colour, and a QR code that checks people in.
This demo runs the same pairing rules as the live app: a seeded shuffle with a full no-repeat rotation, cross-block memory, and fair benching when the numbers are odd.
Big enough for the wall, smart enough to keep the record. Press start — that's the whole manual.
Warm-up, positional, drilling and live rounds — each with its own colour on every screen, each credited by its own rules.
The gym's standard blocks plus each coach's own. Long-press and drag to reorder them.
A plain clock for anything unofficial: pick round, rounds and rest, press start. No attendance credits, no pairs, no stats — and it says so on the button.
Every block is stamped with the account that started it, shown on the phone and the TV. Start the clock from your sofa and the whole room knows it was you.
Tap a name to sit them out this round or the next; hold to mark them gone for the day — their mat time is trimmed to the minute they left.
Idle dashboard with the wall clock in server time, today's class, and a QR code that checks members in. During rounds: the big timer, the roster, and the pairs in colour.
Phone and TV stay in lockstep. Locked phones, dead Wi-Fi and mid-round wakes all recover cleanly — stale updates can never roll the room backwards.
Completed rounds count minutes and rounds; short rounds pool into round-equivalents so a 2-minute shark tank still adds up honestly.
Round and rest horns on the TV and phone, unlocked with a single tap the first time.
A seeded shuffle with a memory — mash the button all you like, the deal only changes when it should.
Nobody meets twice until everyone's met once. The rotation survives across blocks in a session — five one-round blocks still rotate partners.
Odd numbers bench the person who's sat least. Bench time is tracked so it evens out across the night.
Hand-wire any pairing mid-round. The record splits at the exact moment you re-wired, down to a five-second minimum segment.
Each pair gets a colour; matching chips light up on the wall so partners find each other without a shout-out.
Every roll between every pair over 30 or 90 days, coaches included. Crosshair two names and the paths light up to where they meet. Dark rows are cliques; empty cells are pairings that have never happened.
No modes, no knobs. Coverage is the only rule, and the same seed always deals the same round — so a double-tap can't scramble the room.
Every wired round lands in your log with the partner's name on it. Score it honestly, lock it in, watch the numbers build.
Every recorded round: block, partner, duration, R1/R2 within the block, and the class it happened in.
Score each roll 1–10, log subs and taps, call it W, L or draw, add a note only you can see.
Lock a review when you're done being honest with yourself. Locked rounds are read-only until you choose to edit.
Sessions, mat time, rounds, show-rate (last 20 bookings), streak of consecutive weeks, drilling, sparring, positional and warm-up minutes — filtered by 7 days, 30 days, or all time.
Check-in to end of session, minus the time after you left early. The clock's record wins over guesswork.
Your promotion timeline — every belt and stripe, when, and which coach awarded it.
King of the warm-up, most drilling, most positional — only counted where the clock actually ran.
Everything a messaging app should do, inside the gym's own walls — with a staff-only channel the server actually enforces.
Your message appears the moment you hit send, with a delivery dot: grey once the server has it, glowing orange once someone's read it.
"Seen by 4" under your latest message, names on a long-press — and "Rich is typing…" live over the socket.
Long-press any bubble: six quick reactions, reply with a quote that jumps back to the original, copy, edit your own, delete.
Hold the mic, talk, release. The clip sends instantly and AI transcribes it in the background so nobody has to press play in a quiet office.
GIF search and trending, compressed photo sharing, and video clips up to 50MB — tap-to-load so nobody's data plan gets ambushed.
Ten categories including a grappling row, with your recent picks one tap away.
Private threads with read receipts, profile pictures, unread badges and a clear-conversation option.
Staff-only, enforced server-side on every route — list, post, react, delete and even typing signals respect the wall.
An AI assistant with the gym's own context answers member questions; coach commands handle belt promotions and bulk actions with a human confirmation step.
Six independent push toggles — chat, DMs, bookings, reminders, changes, promotions — so the app only taps your shoulder when you asked it to.
The gym's bind-rune, ghost-faint behind the conversation. Ours, not a stock doodle.
Booking that respects capacity, check-in that takes seconds, and attendance numbers a coach can actually trust.
Every class with spaces left, book and cancel in a tap, atomic capacity so two thumbs can't take the last spot twice.
Full class? Join the queue — a cancellation promotes the next person automatically and tells them.
One tap books the week you always train. Habits, encoded.
Scan the code on the TV as you walk in. Coaches can check anyone in manually too.
Consecutive training weeks and your last-20 show-rate, on your home screen where they nag gently.
Tell the app you're travelling and the slipping-members radar leaves you alone until you're back.
Class reminders before you train; instant notice if a session is cancelled or moved — with your booking handled.
Invite-only sessions with the cost split across attendees, kept off the public timetable.
Classes that run long credit the extra time. The mat doesn't stop at the hour and neither do the stats.
Accepted once, recorded forever, before anyone steps on the mat.
Everything a coach needs mid-session, and everything they need after to keep the numbers honest.
Forgot to run the clock? Backfill a whole session or a single block after the fact — minutes, rounds and attendance together.
Ran it as live but it was really positional? Retype the block and every member's stats re-file themselves.
Tell the bot "+20 minutes drilling for Sam on Tuesday" and it stages the change for your confirmation.
Every member × every session outcome at a glance — attended, no-show, cancelled, waitlisted.
Members whose attendance is fading, surfaced before they become the MIA list — with going-away respected.
Private notes on any member, visible to staff only.
Promote through the assistant with a confirmation step; the member's journey and the room's chat both update.
The accident book and emergency contacts, digital and dated.
Verify or reject Scrappy Bird scores before they count towards the prize race.
Roles, money, the timetable and the roster — the unglamorous machinery, built properly.
Build roles from a capability grid — edit members, money, exports, broadcasts, org settings and more — then assign them by name. The server checks capabilities on every route.
The full roster with search, editing, deactivation and signup approvals.
Classes with weekday, time, duration, coach, capacity and topic. Time changes ripple to future sessions; deactivating a class cancels its future sessions and tells everyone booked.
One-off events with compressed poster images, capacity and booking like any class.
Per-session charges onto a member tab — settle or void, with cancelled sessions cleaning up their own charges.
Message every phone in the gym at once, from the office.
Members, attendance and money out to a spreadsheet whenever the accountant asks.
Corrections carry their effective date, so history stays truthful.
A fully-populated sandbox for showing the app off without touching real member data.
Flap through belt-themed gates — every pass earns a stripe. Coach-verified scores feed a prize race. Install-the-app exclusive.
Pass the guard, dodge the juice. Challenge another member head-to-head, live.
Avatars, wall posts with photos, Instagram links and a member directory.
A progressive web app on Cloudflare's edge — no app store, no middleman, independently audited.
Add to home screen on iPhone or Android. Launches offline, updates itself, versioned to the byte.
Cloudflare Workers, D1, KV and Durable Objects — the live chat socket, the clock state and the database all live at the edge.
A strict content-security policy with no inline script, HSTS, rate limiting and a WAF in front of everything.
Signed tokens with per-user revocation, and a server that refuses to run at all if its secrets are missing.
Request bodies are streamed and byte-counted against hard caps — headers are treated as advisory, not trusted.
Channel access, DM eligibility and role capability are resolved server-side on every single route. The client is never trusted with the rules.
Voice transcription, the gym assistant and coach commands run on the same edge platform — no data shipped to a third-party dashboard.
Three independent AI audits and 300+ automated checks run against every release before it ships.