A simple, focused desktop app for tracking your work time and creating invoices. Built with privacy in mind β all your data stays on your computer.
Designed to be easy to use, especially for people who prefer clear interfaces and minimal distractions.
For a complete walkthrough of features and settings, read the FlowForge-Track User Guide.
| Platform | Download | Notes |
|---|---|---|
| macOS | Download .dmg | macOS 10.15+ |
| Windows | Download .exe | Windows 10+ |
| Linux | Download .AppImage | Most distros |
Note: The app is not code-signed yet. See Installation Guide below for how to open it.
- Floating Timer Widget β A small always-on-top window so you always see your timer, positioned at the corner of your app
- Client & Project Management β Organize your work with clients and projects
- Offline Invoicing β Create professional PDF invoices without needing the internet
- Global Keyboard Shortcuts β Control the timer from anywhere:
Cmd+Shift+S(Mac) /Ctrl+Shift+S(Win/Linux) β Start/ResumeCmd+Shift+P(Mac) /Ctrl+Shift+P(Win/Linux) β PauseCmd+Shift+X(Mac) /Ctrl+Shift+X(Win/Linux) β Stop & SaveCmd+Shift+W(Mac) /Ctrl+Shift+W(Win/Linux) β Toggle WidgetCmd+Shift+M(Mac) /Ctrl+Shift+M(Win/Linux) β Toggle Sound
- Pomodoro Timer β Built-in work/break intervals (25/5 min default, customizable)
- Dashboard Analytics β Visual breakdown of your daily and weekly progress
- Smart Idle Detection β Automatically pauses the timer when you step away
- Customizable UI β Light/Dark theme, adjustable font size and density
- App Update System β Checks for updates automatically and notifies you of new releases
- Time Editing β Manually adjust time logs to correct mistakes or add missed time
- High Contrast Theme β Improved visibility for low-vision users
- Disable Animations β Option to turn off UI animations for a calmer experience
- Multi-Currency Support β Set currency per client (EUR, USD, GBP)
- Backup & Restore β Export your data safe-keeping or move it to another device
FlowForge-Track includes built-in protection against accidental data loss:
- Cascading Delete Protection β You cannot delete a client that has projects, or a project that has time entries
- Delete Order β To remove a client completely, you must first delete their time entries, then projects, then the client
- No Undo Needed β This deliberate friction prevents accidental deletion of important billing data
How and where is data stored?
Data is stored locally in a SQLite database file named flowforge.db within your operating system's application data directory.
- macOS:
~/Library/Application Support/com.emmi.flowforge/flowforge.db - Windows:
C:\Users\{username}\AppData\Local\com.emmi.flowforge\flowforge.db - Linux:
~/.local/share/com.emmi.flowforge/flowforge.db(Standard XDG data path)
What are the storage limits? There are no artificial limits imposed by the application. Storage is only limited by the available disk space on your computer.
How is data storage controlled?
- Control: You have full ownership of the local database file.
- Access: The app manages data internally, but you can manually back up, copy, or delete the
flowforge.dbfile if needed. - Security: Access is controlled by your operating system's user permissions.
Since the app isn't code-signed yet, macOS will show a security warning:
- Download the
.dmgfile - Open it and drag FlowForge-Track to Applications
- First launch: Right-click the app β Select "Open" β Click "Open" in the dialog
- Grant Accessibility permissions for keyboard shortcuts:
- System Settings β Privacy & Security β Accessibility
- Click
+and add FlowForge-Track
Windows SmartScreen may show a warning:
- Download the
.exeinstaller - If you see "Windows protected your PC", click "More info"
- Click "Run anyway"
- Follow the installation wizard
- Download the
.AppImagefile - Make it executable:
chmod +x FlowForge-Track.AppImage - Run it:
./FlowForge-Track.AppImage
- Add a Client β Go to Clients β New Client
- Create a Project β Go to Projects β New Project (link it to your client)
- Start Tracking β Go to Timer β Select project β Click Start
- Create Invoice β Go to Invoices β New Invoice β Select client and time entries
- Frontend: React 19, TypeScript, Tailwind CSS 4, Zustand
- Backend: Tauri 2 (Rust)
- Database: SQLite (local)
- Build: Vite 7
# Install dependencies
pnpm install
# Start development mode
pnpm tauri dev
# Run tests
pnpm test
# Type check
pnpm exec tsc --noEmit# Build for current platform
pnpm tauri buildOutputs are in src-tauri/target/release/bundle/
src/ # React frontend
βββ components/ # Shared UI components
βββ features/ # Feature modules (timer, clients, invoices, etc.)
βββ services/ # Database service layer
βββ stores/ # Zustand state stores
βββ types/ # TypeScript types
src-tauri/ # Rust backend
βββ src/lib.rs # Main Tauri setup, commands, migrations
βββ tauri.conf.json # App configuration
Non-Commercial Use Only
This software is open source and free to use for personal, educational, and non-commercial purposes.
You may:
- β Use it for personal time tracking and invoicing
- β Use it within your team or organization (non-profit use)
- β Modify and customize it for your own needs
- β Share it with others
- β Contribute improvements back to the project
You may NOT:
- β Sell this software or any derivative of it
- β Use it as part of a commercial product or service
- β Generate revenue from this software in any way
- β Remove attribution or claim it as your own work
See LICENSE for full legal details.
Contributions are welcome! Please feel free to submit a Pull Request. By contributing, you agree that your contributions will be licensed under the same non-commercial terms.
Made with β€οΈ by Emmi β for freelancers and small teams who value simplicity and privacy.
FlowForge-Track was born from the need for a simple, privacy-focused time tracking tool that doesn't require subscriptions, cloud accounts, or complex setup. It's built to respect your data and your workflow.
Connect:
- π Website: emmi.zone
- π Blog: blog.emmi.zone
- πΌ LinkedIn: linkedin.com/in/emmic
This project is open source but not for commercial use. If you find it valuable, consider sharing it with others who might benefit from it.

