I work on FightNome, so this is about our own app.
FightNome is a pad-work trainer for boxing, Muay Thai, kickboxing and MMA. A recorded voice calls strikes on the beat of the music and you throw them with the phone in your pocket. In an earlier post I wrote about timing those voice files against the beat. This one is about the screen where people build the combos, which turned out to be the harder design problem.
A tile is a sound first
On most workout screens a tile is a picture with a label. Ours is a promise about what you'll hear later, with nobody looking at the phone. So every tile carries two things: the strike (what you do) and the callout (the exact word the coach says).
Those two are often different. A hook can be called "hook", "lead hook", "rear hook", "three" or "four". An uppercut can be "upper", "lead upper", "rear upper", "five" or "six". Kicks get the most options, 17 words such as low, mid, high, teep, calf, switch and their lead and rear versions. Every preset has its own recorded sample bundled in the app, so picking a word never means falling back to a synthetic voice.
Keeping strike and word apart matters because gyms don't agree on vocabulary. One coach calls a cross "two", another says "cross", a Muay Thai coach may want "rear" in front of most things. The combo underneath stays the same and only the words on top change.
The tile menu
Tapping a tile opens a short menu:
- Quick Strike ×2 makes the strike take half of its beat window, and the tile gets a ×2 badge.
- Edit Callout changes the word, from the presets for that strike.
- Replace with Strike swaps the strike and keeps its place in the sequence.
- Rearrange puts the grid into jiggle mode so you can drag tiles around.
- Remove from Sequence deletes it.
The list is short on purpose. Every extra option is one more thing to explain to someone who may already have wraps on.
Pauses are tiles too
The palette starts with Pause, then Jab, Cross, Hook, Upper, Body, Kick, Elbow, Knee, Slip and Pivot. Putting the pause in the same grid as strikes keeps the rhythm visible. A pause is a beat where the coach says nothing, and it can be cut to half a beat. Real pad work has gaps for resetting and defending, and a combo with no pauses would be one long burst.
Section settings
Combos live inside sections. Each section has a duration in 5-second steps, an intensity (half time, normal time, double time), a switch for the backing track and tick, and a preview button. If you turn on tempo control in Settings, there's also one tempo slider for the whole workout. Workouts run at 90 BPM by default.
Generating a combo
There's a generate button that rolls a fresh combo. It uses Apple Intelligence on devices where that's available and the app's own combo grammar everywhere else. The grammar is the interesting part: rules for which strike can follow which are easy to write and much harder to make feel like something a coach would actually say.
Combo vs reaction
The same screen has a mode switch. Combo mode is a scripted sequence the coach calls on the beat. Reaction mode is random calls you react to. The tile grid is what you edit for combo mode.
Open question
The thing I'm least sure about is discoverability. Long-press menus are familiar on iOS, but a plain tap opening a menu seems easier when your hands are taped. If you've designed for people using a phone with gloves or wraps on, I'd like to hear what worked.
If you want to try it
FightNome is on the App Store (iOS 26 and up) and Google Play. It's a paid subscription, and only the yearly plan has a 3-day trial. More at https://fightnome.app.
I used AI assistance to draft this post and edited it myself.

Top comments (0)