A pomodoro timer web app with task management — 100% client-side, works offline as a PWA.
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Pomogenius is a pomodoro timer that helps you stay focused by alternating work sessions with short and long breaks. It pairs the timer with a built-in task list so you always know what you're working on.
Key features:
- Focus / short break / long break cycles with customizable durations, autostart options, and per-phase color themes
- Task management — create, edit, complete, and reorder tasks with drag-and-drop, plus rich-text notes
- Accurate background timer — keeps ticking correctly even when the browser tab is hidden, using the Page Visibility API
- Sound notifications for phase transitions, powered by Howler.js
- Works offline as an installable PWA (production builds)
- Internationalization — French (default) and English
- No backend, no account — all your data stays in your browser's localStorage
- Zustand — state management persisted to localStorage
- shadcn/ui + Radix UI — UI primitives
- @dnd-kit — drag-and-drop task reordering
- Howler.js — audio playback
- i18next — internationalization
- React Hook Form + Zod — forms and validation
To get a local copy up and running, follow these simple steps.
- Node.js 20+ and pnpm
npm install -g pnpm
- Clone the repo
git clone https://github.com/Giovidoh/pomo-frontend.git
- Install dependencies
pnpm install
- Start the dev server
pnpm dev
- Open http://localhost:3000 in your browser
Other useful commands:
pnpm lint # ESLint
pnpm build # Production build (generates the PWA service worker)
pnpm start # Serve the production buildNote: the PWA service worker is only generated during
pnpm build, so offline/PWA behavior must be checked withpnpm build && pnpm start.
- Add a task to the list, or select an existing one to focus on.
- Start the timer — it runs a focus session (default 25 min), then automatically offers a short or long break depending on your cycle.
- Customize durations, autostart behavior, and notification sounds in the settings.
- Install it as an app from your browser's address bar to use it offline (production build only).
Since there is no backend, your settings and tasks are stored in the browser's localStorage — no sign-up required, and your data never leaves your device.
- Focus / short break / long break timer cycles
- Task list with drag-and-drop reordering
- Sound notifications and customizable settings
- PWA support (offline, installable)
- French & English translations
- Pomodoro statistics and session history
- Additional languages
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
No license file is present in this repository yet — all rights reserved until one is added.
Giovidoh — @Giovidoh
Project Link: https://github.com/Giovidoh/pomo-frontend
Live App: https://app.pomogenius.com
- Best-README-Template
- Img Shields
- GSAP + Motion — animations
- @portabletext — rich text editing for task notes
- @tanstack/react-query — async state
- @ducanh2912/next-pwa — PWA service worker
- Lucide — icons
