What is Deskrona?
Deskrona is a local-first, privacy-focused time tracking and productivity monitoring desktop application. Built with Tauri, Rust, and Vue 3, it runs on Windows (64-bit and 32-bit) and keeps all your data on your machine — no cloud, no telemetry, no leaks.
⬇️ Download the latest release
❤️ Support the project
Why I Built It
I wanted a time tracker that:
- Respects privacy — No SaaS, no accounts, no data leaving my computer
- Is fast — Native performance without Electron overhead
- Has a modern UI — Dark/light themes, smooth animations
- Is extensible — I can add features as needed
- Is open source — Full transparency, MIT license
Tauri gave me the native performance of Rust with a Vue 3 frontend, and the result is a ~7MB installer with minimal RAM usage.
Key Features
🔒 Local-First Privacy
All data lives in a SQLite database on your machine. There are no network requests for tracking data — zero telemetry. You own your data completely.
-- Everything is stored locally in SQLite
SELECT * FROM activity_events WHERE user_id = 'default_user';
⏱ Real-Time Activity Tracking
Deskrona automatically detects:
- Active windows and application names
- Window titles
- Browser URLs (Chrome, Firefox, Edge, Brave, and more)
- Keyboard and mouse input
Idle detection marks periods without input as "idle time" based on a configurable threshold.
📸 Screenshot Monitoring
Optional automated screenshots at configurable intervals (default: 10 seconds). Multi-monitor support. Full-screen preview with click-to-view. Can be disabled anytime in settings.
📊 Dashboard & Reports
The dashboard shows:
- Active time vs idle time today
- Keyboard and mouse counts
- Productivity score
- Top applications by usage
- Recent browser URLs
Filter by day, week, month, year, or custom date range.
👥 Multi-User Mode
Two modes available:
- Single User — Personal tracking on your device
- Multi-User — Company mode with admin and employee roles
Admins can create users, view team productivity, and control settings centrally.
🖥 Floating Overlay
A compact draggable overlay that shows your tracking time in real-time. Features:
- Always-on-top mode
- Click-through mode (clicks pass through to apps underneath)
- Pause/resume button
- Draggable to any screen position
- Configurable in settings
🍅 Pomodoro Timer
Built-in Pomodoro focus session system that works alongside tracking:
- Focus: 25 minutes (configurable)
- Short break: 5 minutes (configurable)
- Long break: 15 minutes after 4 pomodoros (configurable)
- Auto-transitions between phases
- Auto-starts when tracking starts (optional)
- Countdown displayed in sidebar and overlay
- No database writes — all in-memory
🌙 Themes & i18n
- Dark and light themes with smooth transitions
- English and Bengali localization
- System tray integration with live timer tooltip
💾 Backup & Export
- Automated database backups (daily/weekly/monthly)
- Manual export and import
- Configurable backup location
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Vue 3, TypeScript, Vite, Chart.js |
| Backend | Rust, Tauri 2 |
| Database | SQLite (rusqlite) |
| i18n | vue-i18n |
| Input tracking | device_query, active-win-pos-rs |
| Screenshots | screenshots-rs |
| Charts | Chart.js + vue-chartjs |
Getting Started
Prerequisites
- Node.js (latest LTS)
- Rust toolchain
- Tauri CLI
Build from Source
git clone https://github.com/AbiruzzamanMolla/Deskrona-Time-Tracking-Software.git
cd Deskrona-Time-Tracking-Software
npm install
npm run tauri dev # Development mode with hot reload
npm run tauri build # Production build
Download Prebuilt Installers
64-bit and 32-bit MSI/EXE installers available on the releases page.
Architecture Overview
Project Structure
Deskrona-Time-Tracking-Software/
├── src/ # Vue 3 frontend
│ ├── App.vue # Main application component
│ └── i18n.ts # Internationalization
├── src-tauri/ # Rust backend
│ └── src/
│ ├── main.rs # Application entry point
│ ├── lib.rs # Tauri commands + background threads
│ ├── db.rs # Database management
│ ├── tracking.rs # Activity tracking engine
│ ├── auth.rs # Multi-user authentication
│ └── backup.rs # Backup/restore
├── docs/ # Landing page
│ └── index.html
└── public/
└── overlay.html # Floating overlay HTML/CSS/JS
Data Flow
[Windows API] → [device_query/active-win-pos-rs] → [tracking.rs]
↓
[SQLite database]
↓
[Tauri IPC commands]
↓
[Vue 3 frontend]
Key Design Decisions
Independent tracking and sessions — The activity monitoring engine (running/paused/stopped) is separate from the session/pomodoro system. You can track activity without a session, or have a session without tracking.
In-memory pomodoro — The Pomodoro timer runs entirely in memory using Rust statics. No database writes for timer state, which means no disk I/O overhead.
Background thread for timers — A dedicated Rust thread updates the tray tooltip, overlay timer, and pomodoro countdown every second using
thread::sleep(Duration::from_secs(1)).
What's Coming Next
- macOS and Linux support
- Customizable notification sounds
- Cloud sync (optional, opt-in)
- More Pomodoro analytics
- Browser extension for URL tracking
Contributing
The project is open source under the MIT license. Contributions are welcome!
Built with ❤️ using Tauri, Rust, and Vue 3.
Top comments (0)