Foyer - Focus Timer
A Pomodoro-inspired focus timer, installable as a PWA, 100% local, no accounts or backend

Why this project
Most focus apps show time as a ticking countdown, which creates anxiety rather than calm. Foyer takes the opposite approach: time is never shown as numbers by default. A ring draws itself over the course of a focus session, and going over your planned time never interrupts anything, an extra ring simply stacks on top of the first.
App preview

Focus ring at rest

3-step starting ritual

Hierarchical tags with autocomplete

Stats dashboard
Features
Graceful overflow
Going past your planned duration doesn't stop the timer: the main ring freezes full and new rings stack up, older ones fading so it stays readable.
Hierarchical tags
Every session can be tagged with a free-text path like code/refactor. Each root tag gets a distinct hue, subtags automatically spread into related shades.
Chains
A full sitting (focus → pause → focus → ... → stop) is tracked as one chain, which closes on an explicit stop or automatically after too long a pause.
100% local and offline
Installable as a PWA, works offline, no data ever sent to a server: everything lives in IndexedDB, with JSON export/import as a manual backup.