Cornerman
A boxing round timer for your phone that calls out combos while you work. It has a bell, a wood-block warning near the end of each round, and spoken punch numbers. No backend, nothing to sign up for.
A mobile-first web app that combines a boxing round timer with a coach who shouts combos at you. You set the number of rounds, the work and rest lengths, a prepare countdown and when the end-of-round warning starts, then press start and leave the phone on the floor.
What it does
- Round timer. A bell starts each round. A wood-block clack sounds every second in the closing window, a buzzer ends the round, and there’s a flourish when you finish.
- Pop-shot mode. During work, the phone’s text-to-speech calls a combo at a cadence you choose. Callouts never talk over the end-of-round warning.
- Combo library. A preset library in beginner, intermediate and advanced tiers, plus a tap-to-build editor for your own. Callouts can be numeric (“one, two”) or named (“jab, cross”).
- Gym-floor details. Big high-contrast numbers, a screen wake lock so the phone doesn’t sleep mid-round, and home-screen install.
It uses the standard number system: 1 jab, 2 cross, 3 lead hook, 4 rear hook, 5 lead uppercut, 6 rear uppercut, plus modifiers like body, feint, slip and roll. So 1-1 body-2 is spoken as “jab, jab to the body, cross”.

How it’s built
React, Vite and TypeScript, and nothing on a server. Settings and custom combos live in localStorage.
- The timer is a pure state machine (idle, prepare, work, rest, finished) with unit tests.
- The display reads from a wall-clock deadline instead of counting ticks, so it stays accurate when the browser throttles a background tab.
- Every sound is synthesized with the Web Audio API. There are no audio files. The bell is three decaying sine partials and the clack is a short burst of filtered noise.
- Audio and speech unlock on the first tap of Start, which is what mobile browsers require.