A modern, local-first time tracking app built with Next.js, TypeScript, and a beautiful glass design system. Fast, private, and works entirely offline.
- 🕐 Real-time Timer: Start/stop timer with live updates and project assignment
- 📊 Project Management: Create and manage projects with color coding
- 📝 Time Entries: Manual entry creation with beautiful custom form components
- 📈 Analytics: Weekly reports with project breakdowns and time insights
- ✏️ Inline Editing: Edit entries directly from the dashboard and reports
- 💾 Data Export: Export all data as CSV for backup and analysis
- 🔒 Privacy-First: All data stored locally in your browser
- ⚡ Offline-First: Works completely offline, no internet required
- 🎨 Glass Design: Beautiful glass morphism UI with consistent design system
- 📱 Responsive: Optimized for desktop and mobile devices
TimeTrackr features a cohesive glass design system with:
- Custom TimePicker: Beautiful dropdown time selection with glass styling
- Custom DatePicker: Calendar picker with glass morphism design
- ProjectSelector: Glass dropdown with project color indicators
- Consistent Components: Unified design language across all interfaces
- Smooth Animations: Elegant transitions and hover effects
- Professional UI: Clean, modern interface optimized for productivity
Want to try it first? Visit the live demo to see TimeTrackr in action!
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/time-trackr.git cd time-trackr -
Install dependencies
npm install # or yarn install -
Start the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS with custom glass design system
- Database: Dexie.js (IndexedDB wrapper)
- Icons: Lucide React
- Date Handling: date-fns
- ID Generation: uuid
time-trackr/
├── app/ # Next.js App Router pages
│ ├── layout.tsx # Root layout with theme provider
│ ├── page.tsx # Dashboard (main page)
│ ├── projects/ # Project management
│ ├── reports/ # Analytics and reports
│ └── settings/ # Settings and data management
├── components/ # React components
│ ├── TimerBar.tsx # Floating timer bar
│ ├── EntryForm.tsx # Manual entry form with custom components
│ ├── GroupedEntryList.tsx # Entry display and management
│ ├── TimePicker.tsx # Custom time selection component
│ ├── DatePicker.tsx # Custom calendar picker
│ ├── ProjectSelector.tsx # Glass project dropdown
│ ├── ReportTable.tsx # Weekly analytics with inline editing
│ ├── CSVExportButton.tsx # Data export functionality
│ └── ThemeProvider.tsx # Dark mode context
├── lib/ # Core utilities and database
│ ├── db.ts # Dexie schema and React hooks
│ ├── hooks/ # Custom React hooks
│ └── utils/ # Utility functions
└── public/ # Static assets
- Click the Start button in the floating timer bar
- Select a project (optional) and add a note
- The timer will run in real-time and persist across page refreshes
- Click Stop to save the time entry
- Navigate to Projects from the dashboard
- Click New Project to create a project
- Choose a name and color for easy identification
- Edit or delete projects as needed
- Click Add Manual Entry on the dashboard
- Use the beautiful custom form with TimePicker and DatePicker
- Select project, start time, end time, and add notes
- The duration is calculated automatically
- Go to Reports to see weekly analytics
- Use the week selector to navigate between weeks
- View daily breakdowns with project summaries
- Edit entries inline with the same beautiful components
- Export data as CSV for external analysis
- Click the edit button on any entry in the dashboard or reports
- Use the consistent form components for seamless editing
- All changes are saved automatically to the local database
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint- Timer Logic: Custom
useTimerhook with IndexedDB persistence - Data Layer: Dexie.js with React hooks for reactive data
- Theme System: Context-based dark mode with localStorage
- Export System: Client-side CSV generation with Blob API
- Design System: Consistent glass morphism components
- Responsive Design: Mobile-first approach with Tailwind CSS
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy with zero configuration
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- AWS Amplify
- Self-hosted with Docker
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Next.js
- Styled with Tailwind CSS
- Database powered by Dexie.js
- Icons by Lucide
TimeTrackr - Track your time with style. 🕐✨