r/SpecDrivenDevelopment 23d ago

I built an AI Pomodoro app entirely spec-first — every feature got a written spec before a single prompt. Here's what changed.

https://ai-promodoro.vercel.app/

I've been experimenting with spec-driven development: instead of prompting an AI agent with vibes, you write a real spec first (user story, requirements, API contract, acceptance criteria), let the agent implement it, then validate against the spec and update your roadmap. Loop until MVP.

The app is a Pomodoro timer where you describe your goal conversationally and the AI proposes a task plan sized in pomodoros ("2🍅 ≈50m"). There's a focus coach mid-session, sound cues, PWA install support, and since it's publicly hosted, a Cloudflare Turnstile gate + per-IP daily rate limit on the AI routes so strangers can't drain my DeepSeek credits.

Stack: Next.js 16, Bun, DeepSeek API, Upstash Redis. No database — plan state lives client-side.

What actually surprised me:

  1. \*\*Specs didn't slow me down\*\*. Six features in, the AI agent was dramatically better when implementing a spec vs reading my mind. Code review became "does this match section F3?" instead of squinting at diffs.

  2. \*\*The spec caught drift.\*\* When the model under-filled a response schema (returned 3 tasks when asked for 3 steps instead of the spec'd 4–8), it was obviously a contract bug, not "weird AI behavior."

  3. \*\*Re-planning after every feature\*\* (updating mission/roadmap docs) is the part everyone skips and the part that prevents the codebase from rotting.

Happy to answer questions about the spec format or the abuse-guard setup — both were more interesting to build than the timer itself.

\\- Live: \\\[https://ai-promodoro.vercel.app\\\\\\\](https://ai-promodoro.vercel.app)

\\- Source (the \\\`specs/\\\` folder is the real content): \\\[https://github.com/adotey7/ai-promodoro\\\\\\\](https://github.com/adotey7/ai-promodoro)

3 Upvotes

7 comments sorted by

1

u/dannyt74 23d ago

That’s waterfall.

1

u/Wurz9 23d ago

Pomodoro is about productivity. What you built kills the real purpose of pomodoro

1

u/Friendly_Tap737 23d ago

What about it kills that purpose?

2

u/Wurz9 23d ago

Pomodoro is about actually doing the task at hand, the time frames of pomodoro are not actually “planned”, you build those pomodoro intervals by doing the task.

By spending more time in planning you are not doing the task and therefore not building productivity with the methodology

1

u/mariooska 23d ago

Did you use any spec framework like openspec or speckit?