Workflow is a beautiful, minimalist desktop application for tracking your work hours. Built with Electron and SQLite, it helps you stay motivated with streak tracking, daily targets, and detailed work session history.
- Timer Management: Start, pause, and adjust your work sessions with ease
- Daily Target: Set and track your daily work hour goals
- Work History: View all past sessions with filtering and search
- Streak Tracking: π₯ Monitor consecutive days of reaching your daily target
- Session Management: Save, edit, and delete work sessions with custom names
- Focus Sessions: Built-in Pomodoro timer with customizable work/break intervals
- Visual Progress: Dynamic progress ring that changes color based on mode (Work/Break)
- Smart Notifications: Auto-start options and sound alerts for session changes
- Persistence: Timer state is saved even when you close the app or switch pages
- Modern UI: Clean, dark-mode interface with glassmorphism effects
- Bottom Navigation: Sleek, mobile-style navigation with hover animations and indicator lines
- Frameless Window: Custom title bar for a native app feel
- Responsive: Optimized mobile-style layout (430x932px)
- Interactive Cards: Hover effects, glow animations, and visual feedback
- Goal Achievement: Sound and visual notifications when daily target is reached
- Congratulations Modal: Celebrate your productivity milestones
- SQLite Database: Fast, local data storage
- Persistent Storage: Data is preserved across app updates
- Settings: Customizable daily targets and notification preferences
- Node.js (v16 or higher)
- npm (comes with Node.js)
-
Clone the repository
git clone https://github.com/fleizean/workflow-timer.git cd workflow-timer -
Install dependencies
npm install
-
Run the application
npm start
To create a distributable executable:
npm run buildThe built application will be in the dist_output/ directory.
workflow-timer/
βββ src/
β βββ pages/ # HTML pages
β β βββ index.html # Main timer page
β β βββ work-history.html
β β βββ settings.html
β βββ renderer/ # Frontend JavaScript
β β βββ timer.js
β β βββ shared.js
β β βββ tailwind-config.js
β βββ styles/ # CSS files
β β βββ common.css
β β βββ titlebar.css
β βββ assets/ # Images and sounds
βββ database/
β βββ db.js # SQLite database logic
βββ main.js # Electron main process
βββ preload.js # IPC bridge
βββ package.json
- Electron - Desktop application framework
- better-sqlite3 - Fast SQLite database
- Tailwind CSS - Utility-first CSS framework
- Material Symbols - Icon library
We use ESLint to enforce code style and catch errors. Before submitting a PR, make sure your code passes the linter:
npm run lintnpm start # Run in development mode
npm run build # Build for Windows
npm run build:dir # Build unpacked directory- Click the Play button to start tracking time
- The timer will count up and show your remaining time to reach the daily target
- Click Pause to temporarily stop the timer
- Use Adjust to manually add or remove time
- Click the Save button
- Enter a custom name for your session (e.g., "Frontend Development")
- Confirm to save - the session is added to your history
- Your streak shows consecutive days where you've reached your daily target
- Weekends are included in the streak calculation
- Missing a day resets your streak to 0
If you see an error saying the app is damaged or cannot be opened, run this command in Terminal:
xattr -dr com.apple.quarantine /Applications/Workflow.app- Click on the Logged card on the main screen
- Browse your past sessions grouped by week
- Use filters to find specific sessions
- Edit or delete sessions as needed
- Statistics dashboard with charts
- Pomodoro timer mode
- Multi-language support
- Custom themes
- Excelsheet sync
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your 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 licensed under the MIT License - see the LICENSE file for details.
Workflow Team
- Website: fleizean.dev
- Icons by Material Symbols
- Font: Inter by Rasmus Andersson
- Inspired by modern productivity tools
Made with β€οΈ and β±οΈ by Workflow Team
