A minimizable web-based timer and stopwatch tool with adaptive Pomodoro functionality, designed for enhanced productivity and focus tracking.
- Timer ⏰ - Countdown timer with hours/minutes/seconds input
- Stopwatch ⏱ - Count-up timer for time tracking
- Pomodoro 🍅 - Adaptive sessions with automatic work/break switching
- Flexible Target Hours - Set goals from 0.5 to 12 hours with automatic session calculation
- Progress Tracking - Visual progress bars and session counters
- Auto-switching - Seamless transitions between work and break sessions
- Smart Session Planning - Adapts Pomodoro intervals for extended work blocks
- Minimizable Corner Widget - Keep timer visible while working in other applications
- Live Tab Titles - See timer progress in browser tab (🍅 25:00, ☕ 05:00, ⏱ 10:23)
- Keyboard Controls - Arrow keys for quick time adjustments
- macOS-style Notifications - Browser notifications with 3 sound options (chime, bell, gentle)
- Dark/Light Mode - Complete theme support with smooth transitions
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/timekeeper.git
cd timekeeper- Install dependencies:
npm install- Start the development server:
npm run dev- Open http://localhost:5000 in your browser
- Select "Timer" mode
- Set your desired hours, minutes, and seconds
- Click "Start" to begin countdown
- Get notified when time is up
- Select "Pomodoro" mode
- Set your target work hours (0.5-12 hours)
- Customize work and break durations if needed
- Start your focused work session
- Automatically switch between work and breaks
- Click the minimize button (⬇) in the header
- Timer moves to corner widget showing time and controls
- Click maximize button to return to full view
- Enable notifications in the settings panel
- Choose from 3 sound options: Chime, Bell, or Gentle
- Test notifications before starting work sessions
- Notifications work even when tab is not active
- Arrow Up/Down - Adjust time inputs
- Space - Start/Pause timer (when focused)
- Escape - Reset timer
- Frontend: React 18 + TypeScript
- Styling: Tailwind CSS with custom design system
- Icons: Lucide React
- Build Tool: Vite
- Backend: Express.js (for serving)
timekeeper/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utility functions
│ │ └── pages/ # Page components
├── server/ # Backend Express server
├── shared/ # Shared types and schemas
└── README.md
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production build
- SimpleTimer - Main timer interface component
- useSimpleTimer - Core timer logic and state management
- ThemeProvider - Dark/light mode functionality
- Notification System - Browser notifications with sound
- Chrome 80+
- Firefox 75+
- Safari 13+
- Edge 80+
Note: Notifications require user permission and HTTPS in production.
- 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.
Made with ❤️ for productive developers