Previously TimeTracker Pro
A Progressive Web App (PWA) for time tracking built with React, TypeScript, and Tailwind CSS. Installable on desktop and mobile with full offline support. Built for freelancers, consultants, and professionals who need to track time, manage projects, and generate invoices.
- Daily Time Tracking — start/stop your workday with clear daily boundaries
- Task Management — create, edit, and delete tasks with real-time duration tracking
- Projects & Clients — organize work by project with per-project hourly rates; projects and clients can be archived and restored
- Client Management — maintain a managed client list with address and contact details; add, edit, and archive clients (blocked while they still have active projects); pick clients from a dropdown when creating projects
- Revenue Tracking — automatic earnings calculation based on hourly rates
- Custom Categories — color-coded, billable/non-billable categorization
- Rich Text Notes — GitHub Flavored Markdown in task descriptions
- Archive & Export — permanent record with CSV, JSON, and invoice export formats
- Backdated Entry Creation — log work for past days directly from the Archive page via "Add Past Entry"
- CSV Import — bring in existing time data from other tools
- Weekly Report — AI-generated work summaries (standup, client, or retrospective tone)
- No Account Required — full functionality with local storage; optional cloud sync via Supabase
- PWA — installable on desktop/mobile
git clone https://github.com/AdamJ/TimeTrackerPro.git
cd TimeTrackerPro
pnpm install
pnpm devOpen http://localhost:8080 in your browser.
First run: click "Start Day" to begin tracking. No configuration required.
Optional — cloud sync: copy .env.example to .env and add your Supabase credentials (see Authentication & Storage).
# Development
pnpm dev # Start dev server (localhost:8080)
pnpm build # Production build
pnpm preview # Preview production build
# Code Quality
pnpm lint # ESLint
pnpm test # Vitest unit tests (187 tests across 14 files)
# PWA Screenshots
pnpm screenshots:install # Install Playwright (first time)
pnpm screenshots # Capture screenshots (headless)
# CSV Import Testing
pnpm test-csv-import
pnpm test-full-import
pnpm test-error-handlingPrerequisites: Node.js 18+ and pnpm. Supabase account is optional (guest mode works without it).
pnpm install
pnpm devBefore committing:
pnpm lint && pnpm buildSee AGENTS.md for code style requirements (tabs, double quotes, @/ imports). See README-EXT.md for full developer documentation.
Detailed documentation lives in README-EXT.md:
- How to Use — daily workflow, project/category management, export/import, markdown
- Progressive Web App — install instructions and PWA feature details
- Authentication & Storage — storage modes, cloud sync setup, auth flow, security
- Technical Architecture — stack, patterns, data flow, project structure, conventions
- Development Workflow — git workflow, testing, adding features
- Documentation Index — links to all docs
When creating an issue or pull request, utilize the templates provided by this repository.
When creating a pull request, make sure that the commit message contains one of the accepted prefixes:
| Prefix | Type | Release |
|---|---|---|
major |
MAJOR | Runs after approval |
feat: / feature: / fix: |
MINOR (FIX/FEATURE) | Runs without approval |
patch: |
PATCH (FIX) | Runs without approval |
bump: / maint: / refactor: / a11y: |
PATCH: | Runs without approval |
docs: |
- | No release |
MAJOR version bumps require approval from code owners.
See CHANGELOG.md for the full history of changes.
Recent highlights:
- Backdated entry creation — "Add Past Entry" button on Archive page opens a multi-step dialog to log tasks for any past date
- Kanban planning board — drag-and-drop task planning view (
KanbanBoard,KanbanColumn,PlannedTaskCard) - Persistent report summaries saved to localStorage; markdown preview/export in the report output panel
AppSidebarcollapsible sidebar navigation with live session timer;PageTitleContextdecouples page header state from layout
MIT License — open source and free to use.
- Originally started with Lovable — learn more
- Badges from markdown-badges
- UI components from shadcn/ui on Radix UI
- Icons from Radix Icons and Lucide
- Built with React, Vite, and Supabase