Stay focused, earn breaks. PomoExchange replaces traditional Pomodoro's mandatory breaks with an earned reward system. Every minute you focus earns points to redeem activities you actually enjoy (a walk, a YouTube video, etc.).
No accounts. No backend. No persistence. Just a timer and a reason to stay focused.
Visit PomoExchange to start using it immediately.
-
Configure: Set your focus duration (default 25 min) and points rate (default 0.05 pts/min).
-
Focus: Start the timer and work until you're done. End early for pro-rated points if life happens.
-
Earn: Points earned = elapsed minutes * points per minute. A 25-minute session at default rate earns ~1.25 points.
-
Redeem: Spend points on one of three reward tiers.
Tier Recommended Break Cost Examples Small 5 min 1 pt Stretch, grab a snack Medium 10 min 2 pts Walk outside, watch a short video Large 15 min 3 pts Half a TV show, quick nap -
Repeat: Track your balance, focus history, and reward history on the home screen. All data resets on page close.
Prerequisites: Node.js (LTS recommended)
npm install
npm run devKey scaffolding decisions (state management, build pipeline, testing, linting, CI/CD) are documented in architecture.md.
| Command | Description |
|---|---|
npm run dev |
Start development server (hot reload) |
npm run build |
Production build |
npm run preview |
Preview production build locally (Vite) |
npm run check |
Lint and format files (Biome) |
npm run test:run |
Run unit tests |
npm run test:browser:run |
Run browser tests (headless) |
npm run test:all |
Run both unit and browser tests |
- Linting & formatting: Biome, run
npm run checkto fix issues automatically before committing. - Pre-commit hooks: Husky, runs lint-staged (Biome on staged files) and the full test suite on every commit. Ensure all tests pass before pushing.
- Testing: Unit tests use Vitest; browser tests use Vitest + Playwright.