Distraction-free focus timer that turns productivity into a game.
Pomodoro timers are everywhere, but most are bloated (ads, sign-ups) or boring (no feedback). Deep work requires psychological reward—seeing your focus streaks, tracking progress, understanding patterns.
Focuz removes friction and adds satisfaction:
The problem it solves:
- ❌ Can't focus without distraction tracking
- ❌ No visibility into productivity patterns
- ❌ Timer apps are cluttered with ads
- ✅ Instant timer start (one click)
- ✅ Session history with trends
- ✅ Data export (CSV, JSON)
- ✅ Fully private (100% localStorage)
Result: Users complete their focus sessions and see tangible progress in weeks.
- Customizable Intervals – Work/break durations are configurable (default: 25min work, 5min break)
- Session Tracking – Automatic logging of every completed session
- Productivity Notes – Capture what you worked on in each session
- Session History – View past sessions, achievements, and streaks
- Data Export – Download session data as JSON or CSV
- Dark Mode – Eyes-friendly interface for long sessions
- PWA Ready – Works offline, installable on phone
- Keyboard Shortcuts – Skip breaks, pause, resume without mouse
- Beautiful UI – Glassmorphism design with smooth animations
- Zero Backend – Fully private, no servers needed
Why Next.js 16 for a timer app? Seems overkill, but Next.js provides:
- Static prerendering – Timer loads instant (no SSR needed)
- Image optimization – Icons/backgrounds load fast
- Vercel deployment – One-click hosting with auto-scaling
- PWA support – next-pwa makes it installable
Why localStorage instead of database? Privacy is feature #1 for Focuz. Sessions are personal data. Storing locally means:
- ✅ Works offline
- ✅ No privacy concerns
- ✅ No server costs
- ✅ Users own their data (can export/delete)
Why Zustand over Redux? Focuz state is simple: current timer, sessions array, settings. Zustand is 2KB (vs Redux 50KB+). Simpler code for state management.
Why React Hook Form + Zod? Settings form (work duration, break duration, etc.) needs validation. React Hook Form + Zod provides type-safe forms with 5KB overhead.
Why next-themes? Theme switching is non-trivial (persist to localStorage, respect system preferences, prevent flash). next-themes handles all of it in one hook.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16.1.6, React 19, TypeScript |
| State Management | Zustand |
| Forms & Validation | React Hook Form, Zod |
| UI | Lucide React, Tailwind CSS 4 |
| Storage | localStorage, IndexedDB |
| Theme | next-themes |
| Export | papaparse (CSV) |
| Deployment | Vercel |
- Node.js 20+, pnpm 10+
# Clone repository
git clone https://github.com/your-username/focuz.git
cd focuz
# Install dependencies
pnpm install
# No .env needed (fully local app)# Development server
pnpm dev
# Open http://localhost:3000# Validate (lint, type-check, test, build)
pnpm validate
# Production build
pnpm build
# Start production server
pnpm start# One-click deploy
vercel
# No environment variables needed- Open Focuz
- Click Start (or press
Space) - Focus for your set duration
- Session auto-logs when timer completes
- After session completes, type in Notes field
- Notes save automatically
- Build a journal of your work
- Click History tab
- See all past sessions with timestamps
- Track streaks and productivity trends
- Click Settings
- Select Export as CSV or Export as JSON
- Data downloads to your computer
- Settings → Duration
- Set work/break intervals
- Changes apply to next session
- localStorage limit – Browser limit ~5-10MB. After ~500 sessions, you'll hit limit. Solution: export and clear history.
- No cloud sync – Data doesn't sync across devices. Use export/import to move data.
- No mobile app – Web app works on mobile but no native app. PWA installation available (install from browser menu).
- Background timer – Timer pauses if browser tab is not active (browser security). Solution: keep tab open.
- No notifications – Browser notifications require permission; not enabled by default. Permission prompt on first session.
- v2 (Q2 2026) – Cloud sync (optional), mobile app, Slack integration for status updates
- v3 (Q3 2026) – Analytics (productivity insights), team collaboration, Pomodoro AI coaching
- v4 (Q4 2026) – Health integration (Apple Health, Google Fit), smart break recommendations
MIT – See LICENSE for details.
Focus better. Ship more. Start your session →