Vibecode build plans · № 6

Build a pomodoro timer

One file, one afternoon — a timer you'll actually trust, with the drift bugs headed off before they happen.

A pomodoro timer looks like the easy vibecode: count down from 25, ring a bell, count down from 5, repeat. It is a great first build precisely because it's small enough to finish today and useful enough to open tomorrow. The catch is that the "obvious" way to build it is subtly, quietly wrong — and you won't notice until you switch tabs to do the actual work.

This plan is opinionated about the one thing that matters here: time. A timer that loses a few seconds each cycle, or freezes the moment you background the tab, isn't a timer — it's a decoration. Most of this plan exists to steer your agent away from the naive countdown loop and toward a clock you can leave running while you work.

The spec — and the cuts

The prompts

Tick the features you want — the prompts below rewrite themselves. Then paste them into Claude Code (or Cursor, or any agent) one at a time, in order.

Every toggle edits the prompts. The copy buttons grab the current version.

1 · Build it


    

2 · The accuracy pass (don't skip this one)


    

3 · Notifications & sound


    

4 · Get human eyes on it before you rely on it


    

Where agents go wrong on this build

Why the feedback step is in the plan

You built this timer, so you know exactly which button starts it, what the bell means, and why the count resets at midnight. Nobody else does. Whether a stranger can tell at a glance that they're in a work block versus a break, whether the controls read as obvious or cryptic, whether the notification is a relief or a jump-scare — that's precisely the judgment you can't make about your own build. Prompt 4 wires your agent to our MCP server: it shares the live page, you send the link to a person or two, they tap and pin notes right on it (no login), and your agent reads the notes back and applies what survives your judgment. The loop that built this very page.

Disagree? Pin a note on it →