Table Tempo is a board game timer built for one shared screen at the table. Each player gets a configurable main time bank, and once that runs out, they switch to a short configurable overtime window on every turn. The goal is to keep games moving without needing accounts, servers, or multiple devices.
- Node.js
18or newer npm
- Open a terminal in the project folder.
- Install dependencies:
npm install- Start the development server:
npm run dev- Open the URL printed in the terminal. The default Vite URL is usually:
http://localhost:5173
- Configure between
2and8players. - Edit each player name.
- Pick a color for each player.
- Set the main time bank.
- Set the overtime time per turn.
- Configure warning thresholds in seconds.
- Enable or disable sound alerts.
- Enable or disable vibration alerts on supported devices.
- Use built-in presets for common play styles.
- Save custom presets locally in the browser.
- Load saved presets later.
- Remove saved presets when they are no longer needed.
- Only the active player's timer counts down.
- Each player starts with a main time bank.
- When a player's main time reaches
0, that player switches to overtime. - Overtime is a short per-turn timer.
- The overtime timer resets at the start of each later turn for that player.
- If overtime expires, the app raises a strong alert but does not force the turn to end.
- Start a game from the setup screen.
- Pass the turn to the next player.
- Pause the timer.
- Resume the timer.
- Undo the last turn handoff.
- Eliminate the active player from the session.
- End the session and open the summary screen.
- Reset back to setup.
- A large active-player clock card at the top of the game screen.
- A live timer for the current player.
- A player grid showing current state for everyone in the game.
- Main time remaining for each player.
- Overtime state for each player.
- Total think time for each player.
- Longest turn for each player.
- Visual states for active, waiting, eliminated, and timed-out players.
- Warning alerts when the active player reaches configured warning thresholds.
- Timeout alerts when overtime expires.
- Wake Lock support when the browser allows it, so the screen is less likely to sleep during play.
- PWA support for installability and offline app-shell behavior.
SpaceorEnter: pass the turnP: pause or resumeU: undo the last turnS: eliminate the active player
- Current configuration is saved locally in the browser.
- Custom presets are saved locally in the browser.
- An in-progress session is saved locally in the browser.
- Refreshing the page restores local data when available.
- Shows overall session duration.
- Shows the number of turns played.
- Shows the configured warning mode and overtime setting.
- Shows each player's total think time.
- Shows each player's longest turn.
- Shows how many overtime turns each player used.
- Shows remaining main time for each player.
- Shows timeout counts.
- Shows recent turn activity.
- Lets you start again or return to setup.


