/01Challenge
I can't concentrate in a quiet room. Silence doesn't clear my head, it fills it with everything unrelated to the task, and the fix I'd used for years was a YouTube tab playing rain or an ambient loop.
That fix stops working the moment you need anything from it. No timer, so pomodoro blocks have to be tracked somewhere else. Nowhere to put the note you need to make without leaving the video. And no control over the mix, so the rain sits too loud over everything and the only volume control moves all of it at once.
The gap was obvious once I described my own bad afternoon in enough detail: the ambient video was solving one problem and creating three more.
/02Approach
Spec before anything else. Three questions in writing - who uses this, who is it actually useful for, and would I use it myself if it already existed - which produced a much longer list of follow-ups. Answering that list is what decided the feature set. The rooms, the two timer modes, the per-sound mixer and the full-screen view all came from that document, not from a brainstorm.
References next, then design in Claude Design. The landing page had plenty to borrow from; the rooms had nothing close enough, which I read as a reason to build rather than a warning. Visual direction for the whole site was settled in the first couple of hours.
Then the environment, before a single feature. Skills, instructions, prompts and project context, with AGENTS.md, CLAUDE.md and copilot-instructions.md all describing the same project and pointing at the same skills - around 42 files by the time setup was done. That configuration is the reason the build session itself was uneventful: the model wasn't guessing at intent, it was executing a plan that already existed.
/03Result
Duskroom shipped as a free web app with no signup. You pick a room and stay in it: an ambient video that loops with no end, a timer with a clock mode and a focus mode for pomodoro, notes inside the room, and a mixer with a separate level for every sound. Every room goes full screen, which is the intended use - it lives on a second monitor while the work happens on the first.
Spec, design and code fit into one weekend day, roughly six to seven hours, on top of an environment that took around 42 files to configure. The videos were the part I'd never done: two to three days learning tools and prompting before I had three loops worth shipping. Three of the eight rooms are live, and the remaining five are waiting on video rather than on code.
