All projects
Product DevelopmentWeb ApplicationNext.jsReact

Gym Timer – A Free Interval Timer Built for Gym Classes

A full-screen interval timer for boxing, HIIT, Tabata and fitness classes, readable from across the gym, with bells, spoken cues and an optional finisher round. Designed, built and run by me, and free for anyone to use 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

Who it's for

coaches running a class, and anyone training on their own

Status

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


The problem

Timed rounds only work if everyone in the room can follow the clock. In a gym that means a timer you can read from across the floor, hear over the music, and trust to keep time, whether the coach is shouting instructions or the phone has gone to sleep.


The idea

A free web app that turns any phone, tablet or screen into a gym clock. You choose a preset or set your own rounds, press start, and it takes over: big colours, bells, spoken cues, and no setting up mid-session.

Choose a presetStartFollow the colours and bellsSession summary

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 to use. Open it on the screen you'll be training in front of and press start.

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.