There are dozens of Pomodoro apps out there — free, good-looking, with statistics, forest sounds, calendar integration. Any one of them would count the same 25 minutes mine counts.
I wrote my own anyway.
The obvious justification isn't the real one
At first, the answer I gave was about control: I wanted a "Project" field
alongside "Task", I wanted to export a .txt with no account, no
syncing, nobody keeping my data on a server that isn't mine. All of that is
true. None of it is the real reason.
You can get close to that control by customizing an off-the-shelf app — or simply by accepting you won't get the last 10%. Most people accept it. It makes sense: the time I spent writing a timer, I could have spent just using one.
What building forces you to decide
A ready-made app arrives with hundreds of decisions already taken by someone else: how many minutes by default, whether it plays a sound, whether it asks you to sign up, whether it shows a streak to make you feel guilty on the day you don't open it. You take the whole package or you go find another app.
Building my own meant making every one of those decisions myself, one at a time. And answering a small question — "will this timer ask for a login?" — always ended up forcing a larger answer: what this tool is for me, specifically, without thinking about anyone else who might use it.
There's no streak in my Focus. There's nothing competing for attention once the arc finishes filling. That isn't a product decision. It's a decision about what kind of pressure I want to feel while I work — and what kind I don't.
A generic app is built to serve everyone, so it never really decides anything about anyone. What you build for yourself is the only tool in the world that knows exactly what you're running from.
This tool, for example
Last week I replaced the whole Focus dial. Out went a generic clock — hand, arc and number counting the same thing three times over — and in came a sun crossing a horizon on a fixed thirty-minute scale, with a thin needle linking the center to the sun, like the arm of a sextant measuring its altitude. No off-the-shelf app would arrive at that decision — not because it's hard to code, but because it makes sense to nobody but me: it's a reference to a mark that exists only because it's mine.
And now that it exists, the tool has become something else: a structure outside me, dictating how my working days get divided. I no longer decide, every morning, whether I'll work in 25-minute blocks — Focus decided that weeks ago, and I just follow. It's the same lesson as the previous piece, reversed: last time, the external structure was a person. This time, I built my own.
And if my decisions make sense to you, help yourself: click here and use the Pomodoro to make something new.
Here's a quick list of what it does:
- Project and Task — two fields, not one. Switching tasks mid-block is recorded with an arrow, instead of erasing what you had decided before.
- Focus 25 · Break 5 · Break 15 — switches to the long break on its own every 4 completed cycles.
- Arc dial — the sun crossing the horizon on a fixed 30-minute scale, without the dead space of a 60-minute clock.
- The day's suns — every completed focus becomes a circle below the number, a sun that has already crossed.
- Keyboard shortcuts — space starts and pauses, R resets.
- Export to .txt — the whole day's session, with total hours and a breakdown by project.
- No login, no account, no cloud — everything stays in your browser.