A beautiful, feature-rich Pomodoro timer web application with dynamic backgrounds, Spotify integration, and customizable settings. Built with React and Vite for a smooth, distraction-free productivity experience.
- โฐ Pomodoro Timer - Classic 25/5/15 minute work and break intervals
- ๐จ Dynamic Backgrounds - Choose from curated high-quality wallpapers across multiple categories (Nature, Lakes, Ocean, City, Desert, Roads)
- ๐ต Spotify Integration - Connect your Spotify account and control playback directly from the timer
- โ๏ธ Customizable Settings - Personalize your experience with easy-to-use settings widget
- ๐ Audio Notifications - Get notified when your timer completes
- ๐ Visual Progress - Beautiful circular progress indicator with gradient styling
- ๐ฏ Three Timer Modes:
- Pomodoro: 25 minutes of focused work
- Short Break: 5 minutes of rest
- Long Break: 15 minutes of extended rest
The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. It uses a timer to break work into focused intervals, traditionally 25 minutes in length, separated by short breaks. The name "Pomodoro" comes from the Italian word for tomato, inspired by the tomato-shaped kitchen timer Cirillo used as a university student. This simple yet powerful method has helped millions of people worldwide overcome procrastination and achieve their goals with less stress.
- Choose a task you want to work on
- Set the timer to 25 minutes (one "Pomodoro")
- Work on the task with full focus until the timer rings
- Take a short break (5 minutes) to recharge
- Repeat the process
- After 4 Pomodoros, take a longer break (15 minutes)
- ๐ฏ Eliminates distractions - Knowing you only need to focus for 25 minutes makes it easier to resist interruptions
- ๐ง Reduces mental fatigue - Regular breaks prevent burnout and maintain high performance
- โก Creates urgency - Time constraints boost focus and productivity
- ๐ Improves estimation - Track how many Pomodoros tasks take to better plan your work
- ๐ Establishes rhythm - Build a sustainable work pattern that maximizes productivity
The technique leverages several psychological principles:
- Time-boxing: Limiting work to fixed periods prevents perfectionism and procrastination
- Structured breaks: Regular rest prevents cognitive overload and improves retention
- Flow state: 25 minutes is optimal for entering deep focus without overwhelming commitment
- Positive reinforcement: Completing Pomodoros provides regular achievement signals
This timer app implements the classic Pomodoro Technique while adding modern features like beautiful environments and music integration to enhance your focus experience.
Focus mode with circular progress indicator and timer controls
Browse and select from beautiful background categories
Control your music without leaving the timer
- React 19 - Modern React with hooks
- Vite - Lightning-fast build tool and dev server
- CSS3 - Custom styling with animations
- Spotify Web API - Music playback integration
- Unsplash Images - High-quality background imagery
- Node.js (v18 or higher)
- npm or yarn
- Spotify account (for music features)
- Spotify Developer App credentials
-
Clone the repository
git clone <repository-url> cd podomoro-timer
-
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:# Spotify API Configuration VITE_SPOTIFY_CLIENT_ID=your_spotify_client_id VITE_REDIRECT_URI=http://127.0.0.1:5173/
-
Get Spotify API Credentials
- Go to Spotify Developer Dashboard
- Create a new app
- Add
http://127.0.0.1:5173/to Redirect URIs - Copy your Client ID to the
.envfile
-
Add screenshots (optional)
Place your screenshot images in the
public/folder:screenshot-timer.png- Pomodoro timer in actionscreenshot-wallpaper.png- Wallpaper settingsscreenshot-spotify.png- Spotify connection
Start the development server:
npm run devThe app will be available at http://127.0.0.1:5173/
Create an optimized production build:
npm run buildPreview the production build:
npm run preview- Select a mode: Click on Pomodoro, Short Break, or Long Break
- Start the timer: Click the "start" button
- Pause if needed: Click "pause" to temporarily stop
- Reset: Click "reset" to return to the starting time
- Change background: Click the settings icon to browse wallpapers
- Connect Spotify: Click the Spotify widget to authenticate and control music
Edit the durations in src/constants.js:
export const TIMER_MODES = {
POMODORO: { label: 'pomodoro', duration: 25 * 60 },
SHORT_BREAK: { label: 'short break', duration: 5 * 60 },
LONG_BREAK: { label: 'long break', duration: 15 * 60 }
}Add or modify background categories in src/constants.js:
export const BACKGROUNDS = {
nature: [/* array of image URLs */],
lakes: [/* array of image URLs */],
// Add your own categories...
}- Main app styles:
src/App.css - Background slider:
src/BackgroundSlider.css - Spotify widget:
src/SpotifyWidget.css - Settings widget:
src/SettingsWidget.css
podomoro-timer/
โโโ public/ # Static assets
โโโ src/
โ โโโ assets/ # Image assets
โ โโโ App.jsx # Main application component
โ โโโ App.css # Main application styles
โ โโโ BackgroundSlider.jsx # Background selection component
โ โโโ BackgroundSlider.css # Background slider styles
โ โโโ SpotifyWidget.jsx # Spotify integration component
โ โโโ SpotifyWidget.css # Spotify widget styles
โ โโโ SettingsWidget.jsx # Settings panel component
โ โโโ SettingsWidget.css # Settings widget styles
โ โโโ constants.js # Timer modes and background URLs
โ โโโ main.jsx # Application entry point
โ โโโ index.css # Global styles
โโโ .env # Environment variables (not in repo)
โโโ index.html # HTML template
โโโ package.json # Dependencies and scripts
โโโ vite.config.js # Vite configuration
โโโ README.md # This file
The project uses Vite for fast development and optimized builds. Configuration can be found in vite.config.js.
Code quality is maintained with ESLint. Configuration in eslint.config.js.
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- Background images from Unsplash
- Spotify Web API for music integration
- Inspired by the Pomodoro Technique by Francesco Cirillo
- Focus fully during Pomodoro sessions - avoid distractions
- Take breaks seriously - step away from your screen
- Customize your environment - choose backgrounds that inspire you
- Use music wisely - ambient or instrumental works best for focus
- Track your pomodoros - aim for 8-12 per day for sustained productivity
Made with โค๏ธ for productivity enthusiasts