Thank you for your interest in contributing to Handbook! Contributions are welcome and appreciated.
If you find a bug, please open an issue with:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Your OS and Handbook version
- Screenshots, if applicable
Feature suggestions are welcome! Open an issue with:
- A clear description of the feature
- The problem it solves or the use case it enables
- Any ideas on how it could be implemented
- Fork the repository
- Clone your fork:
git clone https://github.com/<your-username>/Handbook.git cd Handbook
- Create a branch from
master:git checkout -b feature/your-feature-name
- Install dependencies and verify the app runs:
npm install npm start
- Make your changes — keep commits focused and descriptive
- Test your changes manually across platforms if possible
- Push your branch and open a Pull Request against
master
See the Build Guide for full instructions on setting up the development environment.
npm install # Install dependencies
npm run build:dev # Build in development mode
npm start # Start the application
npm run watch # Build in watch mode (auto-rebuild on changes)npx eslint . # Run ESLint- Follow the existing code style and conventions
- Use TypeScript for all source files under
src/ - Use vanilla JavaScript for web-facing files under
web/ - Keep changes minimal and focused on the issue or feature
src/ # Main process (TypeScript)
├── service/ # Core services (Frame, Page, Tray, etc.)
├── propagator/ # State propagation between main and renderer
├── model/ # Data models
├── data/ # Constants and storage
├── locale/ # Internationalization
└── util/ # Utilities, modals, debug tools
web/ # Renderer process (HTML/CSS/JS)
├── preferences/ # Settings window
├── navigation-bar/
├── quick-menu/
├── screen-share/
└── dialog/
To maintain the primary goal of enhancing user efficiency and focus while minimizing RAM usage, the following are intentionally out of scope:
- Multiple visible windows simultaneously
- Tab-based browsing
- Widget-like functionality
- Full web browser features
These would detract from the focused, lightweight nature of the app.
Be respectful and constructive. We are all here to make Handbook better.
By contributing, you agree that your contributions will be licensed under the MIT License.