FocusRoom: An app to beat my own procrastination.
30 days of building, one bug that nearly defeated me, and a feature that changed everything. The honest story behind my most-used tool.
I have a problem: I put things off. Not out of laziness — more because my brain turns even the smallest bit of friction into a reason to start later. Classic Pomodoro apps never worked for me, because they assume I'm already sitting down and working. FocusRoom was meant to close exactly the gap before that.
Most productivity apps solve the wrong problem. They help you focus — not start.
The problem I wanted to solve
The hardest moment is never the middle of a work session — it's the first minute. I wanted a tool that makes that transition as frictionless as possible: one click, a clear frame, no setup. Three principles were fixed from the start:
- Zero configuration. Open it and go — no accounts, no setting up projects.
- Gentle escalation. A friendly nudge instead of punishment when I drift off.
- Offline-first. No internet, no excuses — runs entirely locally in the browser.
How I built it
The core is surprisingly simple — a timer that watches tab focus. Switch away for too long and FocusRoom checks in with a calm reminder instead of an aggressive alarm. The whole logic fits in a few lines:
Sounds trivial — it wasn't. This is exactly where the bug that cost me three evenings was waiting.
The bug that nearly defeated me
On mobile devices, visibilitychange also fires when the keyboard just pops up. FocusRoom kept thinking I was procrastinating — and interrupted me mid-work. The fix was a small threshold plus a check against the last real input. Unspectacular, but it saved the whole product.
What I learned
- The smallest friction decides whether a tool gets used — or not.
- “Gentle” beats “strict”: the friendly reminder had 3× higher acceptance than the original alarm.
- Offline-first forces better decisions, because there's no server crutch to fall back on.
Done is better than perfect. ✦
FocusRoom is now my most-used tool — not because it's technically impressive, but because it reliably solves a real, small problem. That's exactly why I build these things.
Enjoyed this case study?
Every Sunday I send a new build with its story — short, honest, free.
The Procrastinator