A lightweight cross-platform desktop app built with Rust + Tauri.
HealthyProgrammer helps users maintain a healthy work rhythm by reminding them to take breaks at regular intervals. It’s designed to reduce eye strain, improve focus, and promote better work habits — without heavy system usage.
- Set total work duration
- Set break intervals & break duration
- System notifications (Linux/Windows/macOS)
- Custom alarm sound playback
- System tray support (run in background)
- Global shortcut to open/close the UI
- Beautiful modern UI (Tauri + HTML/CSS/JS)
- Cross-platform lightweight build (~5–10 MB)
- Persistent settings (work intervals saved locally)
| Layer | Technology |
|---|---|
| Desktop Shell | Tauri |
| Backend Logic | Rust |
| Frontend UI | HTML • CSS • JavaScript (or Svelte/React later) |
| Notifications | Tauri notify plugin |
| Audio Playback | Rust crate (rodio or lofty) |
| Global Shortcuts | Tauri global shortcut API |
| Packaging | .AppImage (Linux), .exe (Windows), .app (macOS) |
breaktimer/
├── src-tauri/
│ ├── src/
│ │ ├── main.rs # Rust backend
│ │ ├── timer.rs # Timer engine
│ │ ├── notifier.rs # Notifications
│ │ ├── audio.rs # Alarm sound player
│ │ └── settings.rs # Load/save settings
│ └── tauri.conf.json # App configuration
│
├── src/
│ ├── index.html # Main UI
│ ├── app.js # Frontend logic
│ ├── styles.css # Styling
│
├── README.md
└── package.json (if using JS bundler)
- Total work time (in hours)
- Break interval (in minutes)
- Break duration (in minutes)
- Runs in background thread
- Tracks time precisely (Rust is perfect for this)
- Sends events to frontend (start break, resume work)
- Show notification
- Play alarm sound
- Pause work timer
- Show “Resume Work” notification
- Restart work timer
- Final notification
- Stop timers
- Optionally quit or reset
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Linux example:
sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-dev librsvg2-dev
cargo create-tauri-app breaktimer
cargo tauri dev
cargo tauri build
- Use feature branches (
feature/timer-engine,feature-notifications) - Keep Rust logic modular
- UI can be improved anytime without touching backend
- Document every function inside
src-tauri/src - Always test on Linux + Windows (team can divide tasks)
- Basic UI
- Timer engine in Rust
- Notifications + Sound
- Settings input form
- System tray
- Global shortcut (Ctrl+Shift+B)
- Dark mode UI
- Auto-updater (optional)
- AppImage packaging
- Windows installer
- Polished UI
Created by bugsfounder Inspired by a prototype built 2 years ago, now rebuilt with Rust for long-term quality.