A science-based desktop Pomodoro Timer app with Task Management built with Tauri, React, and Shadcn UI. Stay focused and get things done with the proven Pomodoro Technique!
- Customizable durations for work sessions, short breaks, and long breaks
- Visual progress indicator showing time remaining
- Audio/Desktop notifications when sessions complete
- Auto-start options for breaks and work sessions
- Session counter to track your focus streaks
- Create and organize tasks with estimated pomodoro counts
- Track progress with visual indicators showing completed/estimated pomodoros
- Mark tasks as complete with checkbox interface
- Task selection to focus on specific tasks during work sessions
- Delete tasks when no longer needed
- Today's focus count - see your daily pomodoro count
- Total pomodoros completed across all sessions
- Time focused - total time spent in focus mode
- Task completion rate - completed vs total tasks
- Real-time updates as you complete sessions
- Beautiful gradient design with dark mode support
- Responsive layout that works on any screen size
- Smooth animations and transitions
- Accessible components built with Shadcn UI
- Clean, distraction-free interface
-
Clone the repository
git clone https://github.com/yourusername/pomodoro-focus.git cd pomodoro-focus -
Install dependencies
bun install
-
Run in development mode
bun run tauri dev
-
Build for production
bun run tauri build
The Pomodoro Technique is a time management method developed by Francesco Cirillo:
- Choose a task you want to work on
- Set a timer for 25 minutes (one "Pomodoro")
- Work on the task until the timer rings
- Take a short break (5 minutes)
- After 4 pomodoros, take a longer break (15-30 minutes)
- β Improved focus and concentration
- β Reduced mental fatigue
- β Better time awareness
- β Increased productivity
- β Reduced procrastination
- Enter your task in the "What do you want to work on?" field
- Set the estimated number of pomodoros needed
- Click "Add Task"
- Select a task from your task list
- Click the "Start" button on the timer
- Focus on your task until the timer completes
- Take a break when notified
The default settings follow the classic Pomodoro Technique:
- Work Duration: 25 minutes
- Short Break: 5 minutes
- Long Break: 15 minutes
- Sessions until Long Break: 4
You can modify these in the Rust backend (src-tauri/src/lib.rs).
- React 18 - UI framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- Shadcn UI - Component library
- Lucide React - Icons
- Vite - Build tool
- Tauri 2.0 - Desktop framework
- Rust - Backend language
- Serde - Serialization
- Chrono - Date/time handling
- UUID - Unique identifiers
- tauri-plugin-notification - Desktop notifications
- tauri-plugin-store - Persistent storage
- tauri-plugin-opener - Open URLs
pomodoro/
βββ src/ # Frontend source
β βββ components/ # React components
β β βββ ui/ # Shadcn UI components
β β βββ PomodoroTimer.tsx # Timer component
β β βββ TaskForm.tsx # Add task form
β β βββ TaskList.tsx # Task list display
β β βββ Statistics.tsx # Statistics cards
β βββ lib/ # Utilities
β βββ types/ # TypeScript types
β βββ App.tsx # Main app component
β βββ main.tsx # Entry point
βββ src-tauri/ # Tauri backend
β βββ src/
β β βββ lib.rs # Rust commands
β β βββ main.rs # Entry point
β βββ Cargo.toml # Rust dependencies
β βββ tauri.conf.json # Tauri config
βββ package.json # Node dependencies
βββ tailwind.config.js # Tailwind config
| Command | Description |
|---|---|
bun run dev |
Start Vite dev server |
bun run build |
Build frontend |
bun run tauri dev |
Run app in development |
bun run tauri build |
Build app for production |
Download the latest release for your platform from the Releases page:
- Windows: Download the
.msiinstaller or.exesetup file - Linux: Download the
.debpackage (Ubuntu/Debian) or.AppImage(universal)
This project uses GitHub Actions to automatically build installers for Windows and Linux:
- β
Builds are triggered on every push to
mainordevelopbranches - β
Release builds are created when you push a version tag (e.g.,
v1.0.0) - β All installers are automatically uploaded as release assets
See .github/WORKFLOWS.md for more details on the CI/CD pipeline.
Edit the default settings in src-tauri/src/lib.rs:
impl Default for Settings {
fn default() -> Self {
Settings {
work_duration: 25 * 60, // Change work duration
short_break: 5 * 60, // Change short break
long_break: 15 * 60, // Change long break
sessions_until_long_break: 4,
// ...
}
}
}The app uses Tailwind CSS with custom color schemes defined in src/index.css. Modify the CSS variables to change colors:
:root {
--primary: 221.2 83.2% 53.3%; /* Change primary color */
--background: 0 0% 100%; /* Change background */
/* ... */
}Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
- Pomodoro Technique by Francesco Cirillo
- Tauri - Building desktop apps
- Shadcn UI - Beautiful components
- Lucide - Icon library
If you have any questions or run into issues, please open an issue on GitHub.
Happy focusing! π β¨
Remember: The key to productivity is not working harder, but working smarter with focused intervals.