pnpm i
pnpm run devIt's a countdown timer that can
- be started
- be paused (after it has started)
- be resumed (after it has been paused)
- be reset (after it has started or after it finishes)
- be finished (after at least some time was recorded)
- have multiple periods
- have current period duration adjusted
- have current period elapsed time adjusted
- move to the next or previous period
- show the total time elapsed while it was running
- carry deadlines — wall-clock targets drawn as dashed lines over the timeline
It uses localStorage to “keep running” after closing the page and opening it again.
Add + lines in the durations editor (E), one per deadline:
+16:30 stretch every day at 16:30
+today 17:00 leave a concrete moment (today/tomorrow/yesterday/30 Dec)
Each deadline is a dashed line over the timeline with a countdown next to it (0:05 — five
minutes to go, -0:05 — five minutes over). Past its moment it turns red and pulses, and a chime
(picked once per deadline) repeats until silenced — with the bell button on its label or the S
key. Only the most recently expired deadline rings; an older still-ringing one goes quiet for good
when a newer one fires. Daily deadlines ring again the next day.
Builds the app for production to the dist folder.
pnpm run buildThe app is deployed to GitHub Pages. https://benabraham.github.io/tymer/
An open page picks up a new deploy on its own — the service worker checks for one every 15 minutes and when you return to the tab. It reloads as soon as that is safe: right away when the timer is idle or finished, otherwise the build avatar in the top-right starts pulsing and reloads on click (or by itself once the session ends). Its tooltip shows which build is running.
Tymer speaks: it announces elapsed time, time remaining, and — with rising impatience — how far past its period you are. Each event is a directory of interchangeable takes and one is picked at random per play. The words are generated rather than recorded, from prompt sets kept in the repo.
sound-prompts/README.md— how a set is defined, and the overtime escalation ladderbuild-tools/tts/README.md— generating and promoting a set
pnpm test # Run tests with Vitest
pnpm run test:coverage # Run tests with coverage reportpnpm run format # Write
pnpm run format:check # Check only