Pomodoro Timer
Work in focused sprints with regular breaks. No account needed — the timer runs right here on this device. Sign in to keep your focus history and stats, and to pick up your session from any device.
Loading…
How it's built
- Pattern: server-side state machine — phases and transitions live in the backend domain model, not the browser.
- Timing: pause-safe accumulator plus wall-clock segment start; the client only extrapolates the countdown.
- Stack: Next.js + Fastify + PostgreSQL, with a partial unique index enforcing one active session per user.
- Frontend: this screen is a state machine too — a discriminated union renders exhaustively, so illegal UI states don't compile.