A desktop productivity app built with Electron.js that helps you manage workspaces, launch tools efficiently, and stay focused by blocking distracting applications.
- Workspace Manager – Create and switch between different workspaces, each with its own set of apps, scripts, and workflows.
- App Launcher – Automatically launch applications, open files, or run commands when starting a workspace.
- App Blocker – Temporarily block distracting apps (e.g., browsers, games, social media apps) while you work. (Linux only)
- Persistent Storage – User data (workspaces, blocked apps) is saved locally in JSON for easy persistence.
- Electron.js – Desktop app framework
- React – UI rendering
- Vite – Build tool and dev server
- TailwindCSS – Styling
- DaisyUI – UI components
- Node.js – Backend logic & APIs
- Clone the repository:
git clone https://github.com/your-username/useflow.git
cd useflow
- Install dependencies:
npm install
- (Optional) Set up App Blocker (Linux only):
cd blocker_setup
sudo ./install.sh
sudo systemctl start app-blocker.service
- Development mode:
npm run dev
- Build the app:
npm run build
- Preview the built app:
npm start
- Build for specific platforms:
# Windows
npm run build:win
# macOS
npm run build:mac
# Linux
npm run build:linux
- Launch the app using
npm run dev
. - On the Home screen, view your existing workspaces.
- Click "Add Workspace" to create a new workspace.
- Configure your workspace with apps to launch, files to open, or commands to run.
- (Linux only) Add apps to block while working on this workspace.
- Start the workspace to launch all configured items and block distracting apps.
useflow/
├── src/
│ ├── main/ # Electron main process
│ ├── preload/ # Preload scripts
│ └── renderer/ # React frontend
├── blocker_setup/ # App blocker installation scripts (Linux)
├── assets/ # Screenshots and icons
├── build/ # Build configurations
└── package.json # Project dependencies and scripts
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- 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
- Electron for the desktop app framework
- React for the UI library
- TailwindCSS and DaisyUI for styling