Introduction
“Do one thing well.” That’s the entire idea behind Pomora. It’s a simple Pomodoro timer with a clean UI, dark mode, and zero fluff—built with Next.js (App Router), TypeScript, Tailwind CSS, and shadcn/ui.
Live demo: https://pomora.vercel.app/
Source code: https://github.com/shravzzv/pomora
Why build another Pomodoro timer?
Two reasons:
- Build-every-week habit: I wanted a small but polished app to sharpen my Next.js + UI chops.
- Minimalism: Most timers do too much. I wanted a calm, unobtrusive tool I actually enjoy keeping open.
No accounts. No dashboards. No backend. Just a good timer.
Features
- Three modes: Pomodoro (25m), Short Break (5m), Long Break (20m)
- Controls: Start / Pause / Resume / Restart + Reset
- Smart time display: hh:mm:ss only when hours are needed
- Dark/Light themes with a settings dialog
- Responsive and accessible UI (buttons, focus, contrast)
- Privacy friendly: no backend; optional Vercel Analytics if you want it
Tech stack
- Next.js (App Router) + TypeScript
- Tailwind CSS for utility-first styling
- shadcn/ui for accessible primitives (Tabs, Dialog, Button, Switch)
- lucide-react for crisp icons
- Vercel Analytics
Wrap-up
Pomora is intentionally small. If you’ve been meaning to ship something, I highly recommend a scoped, well-designed utility like this. You’ll finish faster and learn a lot on polish.
If you try it, I’d love feedback.
Top comments (0)