Warrior Timer: The Formulaic Interval Timer
Warrior Timer: The Formulaic Interval Timer
I’m training for 3 different mace competitions this year and I’ve found myself using interval timers to build fancy new workout plans that meet my specific needs. The experience has been frutrating and often unintuitive.
I’ve always had the impression that an interval can be expressed pretty easily as a formula 3(2w2r) and I shouldn’t need to know whether its a compound or round timer to construct it - just give me what I ask for.

So I’ve finally decided to put my skills to the test to build the interval timer that I want. In fact I pretty much outsourced my skills to Claude Code to build the app I wanted! A timer that is simple enough that I could set it up mid-workout without fumbling through twelve menu options.
Enter: Warrior Timer, a side project me and Claude built to make my training less frustrating.
How Warrior Timer Works
Warrior Timer uses a URL-based syntax to define your intervals. That might sound technical, but it’s actually brilliantly simple once you get the hang of it.
Here’s the basic formula:
w= workr= restwu= warmupp= prepare-
cd= cooldown - Numbers indicate duration (30 = 30 seconds, 5m = 5 minutes, 1:30 = 1 min 30 sec)
- Parentheses with a number repeat sections:
8(20w10r)= 8 rounds of 20s work/10s rest
You can chain segments together, nest repetitions, and even name your exercises so “WORK” becomes “Mace Swings” on the display, or “Squats” if you are old school.
My Competition Training Timers
I’ve embedded a few examples here but you will get more functionality such as editable routines, metronomes, progress bars and more if you view them on the main Warrior Timer site
Mace Half Marathon Preparation
For building up to 30 minutes of continuous mace work, I use:
Code: 30p+30mw[mace]
This gives me a 30-second prep period to get into position, then straight into 30 minutes of mace swings. No fancy intervals, no breaks—just me, the mace, and the clock. The [mace] tag displays “mace” instead of generic “WORK” which becomes more useful when you are doing more than one exercide in a session.
King of the Swing: Progressive Rounds
This one’s more complex. I built up my work capacity using progressive intervals that increase in duration:
Code: 30p+1mw1mr+2mw2mr+3mw3mr+4mw4mr+5mw5mr
It starts with 1 minute of work and 1 minute of rest, then increases each round up to 5 minutes of work and 5 minutes of rest. Total workout time: 30 minutes of work across 5 rounds. It’s brutal, but it mimics the competition structure while building endurance.
King of the Swing: Competition Simulation
When I’m closer to competition, I switch to the actual format:
Code: 30p+5(5mw5mr)
Five rounds of 5 minutes work, 5 minutes rest. This is as close as I can get to competition conditions in training. The timer keeps me honest—no cutting rounds short, no extending rest periods.
Why I Love This Approach
It’s shareable. I can send someone a URL and they instantly have the same workout loaded. No app download, no account creation, no friction.
It’s flexible. I can create any interval structure I can imagine. Progressive rounds, pyramid sets, named circuits — it all works.
It’s embeddable. I can drop a timer directly into blog posts (like I’ve done above) or training documentation. Click Start and go.
It’s savable You can save workouts as favourites for easy access so you don’t have to rebuild them every time. This saves them to your device so you want be able to switch between laptopn and phone unfortunately.
It works everywhere. Phone, tablet, laptop, whatever. As long as you have a browser, you’re good. You can even save as a Progressive Web App (PWA) for a phone app experience.
The Technical Bits (for the Nerds)
I built this with Rails 7.1, Stimulus.js for the interactivity, and Tailwind for the styling. The timer uses the Web Audio API for the metronome and countdown sounds, and all your favorites and recent workouts are stored locally in your browser.
There’s a full syntax guide at warriortimer.fit if you want to build your own custom intervals. You can also browse pre-built protocols for common formats like Tabata, EMOM, and various strongman/mace training patterns.
Give It a Try
The timers above are live and functional. Click Start on any of them right now if you want to see it in action.
Or head to warriortimer.fit and build your own. If you’re training for something specific, whether it’s a mace competition, a strongman event, or just trying to make your garage workouts more structured, I think you’ll find it useful.
And if you embed one on your own site, I’d love to hear about it. This whole project started because I needed a better tool for my own training. Turns out, I wasn’t the only one.
Now, if you’ll excuse me, I have 30 minutes of mace swings to get through.
You can find Warrior Timer at warriortimer.fit
Training protocols include Tabata, EMOM, custom circuits, and more. All free, all open, all built by someone who uses it.