Thanks for your interest in contributing! Here's how to get started.
git clone https://github.com/zumap/zumap.git
cd zumap
npm install
npm run devThe easiest way to contribute! Create a VIA-compatible JSON file and add it to keyboards/. See the VIA specification for the format.
Add default keymaps for keyboards in keymaps/. Include the keyboard name so users know what it's for.
Open an issue with steps to reproduce.
Check the roadmap in README.md. Open an issue to discuss before starting large changes.
- TypeScript strict mode
- Use the existing patterns in
src/lib/andsrc/components/ - Keep components focused — one job per component
- Client-side only (no server actions/API routes for now)
- Fork and create a feature branch
- Make your changes
- Test locally with
npm run dev - Run
npm run buildto check for errors - Submit a PR with a clear description
- Use the VIA JSON format
- Include accurate matrix dimensions
- Test that the layout renders correctly in the app
- Name the file descriptively (e.g.,
tofu65-v2.json)
By contributing, you agree that your contributions will be licensed under the MIT License.