A browser-based Pomodoro timer as a Progressive Web App. Works offline, no tracking, no dependencies.
- Customizable timer with presets
- Pomodoro mode (25/5 or 50/10 cycles, or custom durations)
- 8 themes with dark/light mode
- 3 timer animations
- Keyboard shortcuts: S (start/stop), P (pause), R (reset), D (dark mode), , (settings), ? (help)
- Touch gestures: tap to start/pause, long press to reset, swipe to change presets
- Web notifications
- Installable as a PWA
python -m http.server 8000Then open http://localhost:8000
For development, use index.nonProd.html (supports Live Server). Use index.html for production.
All data stored in localStorage. No tracking, no network requests except service worker caching.
ES6 modules:
script.js- entry pointtimer-module.js- timer logic with drift compensationui-manager.js- DOM manipulationsettings-modal.js- settings UIpomodoro-manager.js- Pomodoro workflowerror-recovery.js- error handlingmobile-enhancements.js- touch gesturesservice-worker.js- PWA caching
See CLAUDE.md and TODO.md for development details.