Built because the tools I tried didn't feel like using them.
Built because the tools I tried didn't feel like using them.
Most pomodoro timers work fine and feel like nothing. A countdown, a beep, back to the task. I wanted something that made finishing a focus block feel like something happened — not just a number hitting zero. This is a side project, not client work. I built it because I needed it myself, and building it exactly how I wanted it turned out to be faster than finding one that already existed.
The problem with existing timers.
Pomodoro apps solve the mechanical part — 25 minutes on, 5 minutes off — and stop there. None of them made me want to open the app again the next day. The timer itself is trivial to build; what's missing in most of them is any reason to care once the session ends.
What I built.
A focus timer with the standard pomodoro structure — 25 minutes of work, 5 minutes to breathe — plus a layer of gamification on top: rewards that show up when a session completes, and a counter that tracks progress over time. The goal wasn't to make the timer more complicated. It was to make finishing a block feel like it counted for something, instead of just resetting to zero and starting again. When a session ends, confetti fills the screen and a short victory tune plays. Small, deliberate, and completely unnecessary from a functional standpoint — which is exactly why it works. A pomodoro timer doesn't need a celebration to function. It needs one to make you want to run the next session.
Calm while you work, loud for three seconds when you're done.
The interface stays quiet during a focus block — nothing competing for attention while a 25-minute timer is running is the whole point of the tool existing. Then the session ends, and for a few seconds the app does the opposite: confetti, a burst of sound, a small celebration that has nothing to do with productivity and everything to do with wanting to come back tomorrow. That contrast is the actual design decision. Not the confetti itself — the fact that everything around it is deliberately understated, so the one loud moment has something quiet to stand out against.
Engineering.
Built on Next.js, with GSAP driving the confetti animation on session completion — timed to sync with the victory sound rather than firing as a generic one-off effect.
What I took from it.
Building a tool for myself first, without a client brief dictating scope, meant the only feedback loop was whether I kept using it. That's a different kind of pressure than client work — no deposit riding on it, but also no external opinion to fall back on if a decision felt wrong.