Cross-platform time tracking app for personal productivity
Track your work time, stay focused, achieve your goals.
Timebeat is a personal time tracking application designed for developers and creators who want to understand and optimize how they spend their time. Built with a modern tech stack, it runs on Desktop (Windows), Web, and Mobile (iOS/Android).
- ⏱️ Flexible Timer — Free mode or time-boxed sessions (Pomodoro-ready)
- 📊 Project Tracking — Organize time by projects, tasks, and categories
- 🔔 Smart Notifications — Break reminders, session alerts, hydration tips
- 📱 Cross-Platform — Desktop, Web, and Mobile sync seamlessly
- 🌐 Offline-First — Works without internet, syncs when connected
- 📈 Rich Analytics — Daily/weekly/monthly stats and trends
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, Tailwind CSS 4 |
| Desktop | Tauri v2 (Rust backend, ~20MB) |
| Mobile | Capacitor 6 (iOS & Android) |
| Backend | Supabase (PostgreSQL + Auth + Realtime) |
| State | Zustand with persist middleware |
| Charts | Recharts |
| Offline DB | SQLite via Tauri/Capacitor |
timebeat/
├── apps/
│ ├── web/ # Next.js 15 application
│ ├── desktop/ # Tauri v2 wrapper
│ └── mobile/ # Capacitor wrapper (P1)
├── packages/
│ ├── ui/ # Shared React components
│ ├── core/ # Business logic (timer, sync)
│ ├── db/ # Prisma schema & client
│ ├── types/ # TypeScript types
│ ├── constants/ # Shared constants
│ ├── utils/ # Utility functions
│ └── hooks/ # React hooks
├── docs/
│ ├── adr/ # Architecture Decision Records
│ └── specs/ # Feature specifications
└── tools/
└── scripts/ # Build & automation scripts
- Node.js 20+
- pnpm 9+
- Rust (for Tauri desktop app)
- Supabase CLI (optional, for local dev)
# Clone repository
git clone https://github.com/kiki/timebeat.git
cd timebeat
# Install dependencies
pnpm install
# Setup environment
cp .env.example .env
# Edit .env with your Supabase credentials
# Generate Prisma client
pnpm db:generate
# Start development
pnpm dev:web # Web only
pnpm dev:desktop # Desktop app
pnpm dev # All appspnpm dev # Start all apps in dev mode
pnpm build # Build all apps
pnpm lint # Lint all packages
pnpm check:types # TypeScript check
pnpm test # Run tests
pnpm clean # Clean all build artifactsUsing Supabase PostgreSQL with Prisma ORM.
# Generate Prisma client
pnpm db:generate
# Push schema to database
pnpm db:push
# Open Prisma Studio
pnpm --filter @timebeat/db db:studio- Offline-First — App works without internet, syncs when available
- Privacy-Focused — Your data, your control
- Minimal Friction — One click to start tracking
- Cross-Platform Parity — Same experience everywhere
- Performance — Fast startup, low memory footprint
See ROADMAP.md for detailed planning.
| Phase | Focus | Status |
|---|---|---|
| P0 | Core timer, projects, basic dashboard | 🚧 In Progress |
| P1 | Goals, advanced analytics, mobile | 📋 Planned |
| P2 | Notifications, cloud sync | 📋 Planned |
| P3 | Integrations, automation | 💭 Future |
- BACKLOG.md — Feature backlog (P0→P3)
- ROADMAP.md — Release planning
- CHANGELOG.md — Version history
- docs/adr/ — Architecture decisions
- docs/specs/ — Feature specifications
This is a personal project, but contributions are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feat/amazing-feature) - Commit changes (
git commit -m 'feat: add amazing feature') - Push to branch (
git push origin feat/amazing-feature) - Open a Pull Request
MIT License — see LICENSE for details.
Built with ❤️ for productivity