A simple, responsive multi-phase countdown timer for web and presentations.
- Multiple Phases: Define as many phases as you want, each with a custom title and duration (hours/minutes).
- Configurable Start Time: Set a start date/time for the countdown.
- Live Timer: Displays the current phase, time remaining, and progress bar.
- Next Phase Preview: Optionally show the next phase below the timer.
- Responsive Design: Works well on desktop, tablet, and mobile devices.
- Presentation Mode: "Go Fullscreen" button hides all configuration UI for a clean display (great for events).
- Persistent State: Phases and start time are saved to your browser (localStorage).
- Docker-Ready: Simple to self-host.
-
Open the app:
Openindex.htmlin your browser, or deploy to any static file server. -
Set up your phases:
Add phases using the form:- Enter a title (optional).
- Specify hours and/or minutes.
- Click Add Phase.
- You can edit or delete future phases. Running or completed phases cannot be changed.
-
Set the start time:
Pick a date and time, then click Save & Start. -
Presentation mode:
- Click Go Fullscreen for a clean, distraction-free timer display.
- Or, add
?present=1or#presentto the URL. - Press
Pto toggle presentation mode.
-
Reset:
Use the Reset button to clear all data and start fresh.
-
Show Next Phase:
Use the checkbox to toggle whether the next phase is displayed under the timer. -
URL Parameters:
?start=...— Set the start time via URL (ISO or local datetime).?present=1or#present— Launch in presentation mode.
- All logic is in
script.js. - Styles are in
styles.css. - The UI is pure HTML/CSS/JS—no dependencies.
-
Build an image:
docker build -t phase-countdown . -
Run:
docker run -d -p 8080:80 phase-countdown
(Supply your own Dockerfile as needed for static serving, e.g., using nginx:alpine.)
MIT
Built for simple phased countdowns — perfect for workshops, hackathons, and events!