DEV Community

Cover image for Introducing Pomora: a minimal, focused Pomodoro timer (Next.js + Tailwind + shadcn/ui)
Sai Shravan Vadla
Sai Shravan Vadla Subscriber

Posted on

Introducing Pomora: a minimal, focused Pomodoro timer (Next.js + Tailwind + shadcn/ui)

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:

  1. Build-every-week habit: I wanted a small but polished app to sharpen my Next.js + UI chops.
  2. 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)