A tiny, static countdown app built with Next.js static export. It runs entirely in the browser and can be shared through URL parameters.
Install dependencies once:
npm installStart local development:
npm run devOpen http://localhost:3000.
Create a static production export:
npm run buildExported static files are generated in out/.
The app supports a built-in generator:
- Open the app.
- Fill in title, target date/time, and unit.
- Click
Apply. - Click
Copy link.
The app copies the generated URL to your clipboard.
Share links are plain query strings:
v: URL schema version (1for new links)date: target datetime (required for countdown display)unit:seconds,minutes,hours,days,weeks,months, oryearstitle: countdown titlenote: optional note textlink: optional external URL
Example:
http://localhost:3000/?v=1&title=New%20Year&date=2026-12-31T23:59&unit=days¬e=Time%20left&link=https%3A%2F%2Fexample.com
If unit is omitted, it defaults to weeks.
If date is missing, the page shows a prompt to set one.
Legacy compatibility:
- If
v=1is absent, legacy params are mapped automatically:d -> dateu -> unitt -> titlen -> notel -> link
main is deployed automatically to molly by GitHub Actions using a self-hosted runner.
- Workflow:
.github/workflows/deploy-countdown.yml - Deploy script:
ops/deploy/deploy_countdown.sh - Caddy snippet:
ops/caddy/countdown.caddy.snippet - Runbook:
docs/DEPLOYMENT.md