All projects
Product DevelopmentWeb ApplicationNext.jsReact

Gym Timer – A Free Interval Timer Built for Gym Classes

My gym used the same free online timer for years, until we were told we'd need to download an app to keep using it. None of the alternatives quite fitted our classes, so I built one: a full-screen interval timer for boxing, HIIT and Tabata that opens in any browser, with nothing to install and no sign-up. Free for anyone at gymtimer.uk.

Jump to a section
Gym Timer – A Free Interval Timer Built for Gym Classes

Built with

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS

At a glance

What it is

a full-screen interval timer for boxing, HIIT, Tabata and fitness classes

Why it exists

my gym's free timer went app-only, and nothing else quite fitted our classes

Who it's for

coaches running a class, and anyone training on their own

Status

live at gymtimer.uk, free to use, with nothing to download, no account and no tracking


Why I built it

For years, my gym ran every class off the same free online timer. Someone opened it on the screen at the front, pressed start, and nobody gave it a second thought. It just worked.

Then one day the gym was told that to keep using it, they'd need to download an app. Something that used to open in a browser now had to be installed on whatever device was running the class before the bell could ring.

So we looked for another one. There are plenty of interval timers out there, but none of them quite did what our classes needed. Some were close, and in a busy class "close" means someone fiddling with settings while everyone waits.

I build software for a living, so I stopped looking and built the timer we actually wanted.

The rule from day one: nothing to download and no sign-up. Open the page, press start.


The idea

Keep what we liked about the old timer: it opens in a browser on any phone, tablet or screen, for free. Then make it fit how a class really runs. You choose a preset or set up your own rounds, press start, and it takes over: big colours, bells, spoken cues, and no setting up mid-session.

Open gymtimer.ukChoose a presetStartFollow the colours and bells

What I built

A clock you can read from across the room

Each phase has its own colour: green for work, amber for the last ten seconds, blue for rest, indigo for get ready, and red for the finisher. There's a high-contrast mode, a fullscreen view, progress bars, and a summary at the end.

Cues you can hear

A bell starts and ends each round, a knock and a spoken "ten seconds" give the warning, and beeps count down 3-2-1. A voice calls out "Get ready", the round number, "Rest" and "Workout complete", and a fanfare marks the end. Most of the sounds are generated in the browser, so there's very little to download.

Sessions that fit the class

There are presets for boxing (twelve 3-minute rounds), HIIT and Tabata, and you can save your own on the device. A session can have a warm-up, labels for each round, and an optional finisher burst at the end of every round. Controls let the coach pause, skip a round or rest, add 30 seconds of rest, or switch to manual mode and move each phase on by hand. Keyboard shortcuts cover the main controls.

A screen that stays on

The app keeps the screen awake while a session runs, and it can be installed on a phone or tablet like an app.


Under the hood

Accurate timing

the timer works from a fixed end time rather than counting ticks, so pausing and resuming are exact and it corrects itself if the browser slows a background tab.

No server

it's a fully static app served directly from the web server. There's no account, no database and no analytics, and nothing about you leaves the device.

Saved on the device

your own presets stay in your browser.


Try it

Gym Timer is free, and there's nothing to install. Open it on the screen you'll be training in front of and press start. If your gym's timer has gone app-only too, this is what I use.

Open Gym Timer at gymtimer.uk


Technical stack

Next.js 14 as a static export, React 18 and TypeScript, Tailwind CSS, the Web Audio and Speech Synthesis APIs, the Screen Wake Lock and Fullscreen APIs, and a web app manifest, served as static files over HTTPS.

Gallery

Product DevelopmentProgressive Web AppWeb AudioStatic SiteFitness

Project Links

Interested in similar work?

Get in touch to discuss your project.

Start a conversation

Let's Work Together

Ready to Build Something Remarkable?

Whether you need a bespoke website, a full digital marketing strategy or a technical partner who understands business, I'm here.