Before you start
Set yourself up for success by preparing the basics before making changes.
- A GitHub account and a local Git setup
- Familiarity with pull requests (PRs) and branching workflows
- The tools required for your contribution area:
- Software: a C/C++ toolchain and your preferred IDE/editor
- Hardware: your preferred CAD/PCB tools and access to a printer/fab as needed
- Documentation: a Markdown/MDX-capable editor
- Software — firmware and control code in the
/Softwaredirectory - Hardware — CAD files, PCB designs, and printed parts in their respective directories
- Documentation — guides and references in the
/Documentationdirectory
Forking the Repository
Learn how to create your own copy of the OSSM repository to work on.
Types of contributions
- Bug fixes and performance improvements
- New features and hardware iterations
- Documentation updates and examples
- Issue triage, testing, and review feedback
Contribution workflow
Find something to work on
Browse open issues to find something that interests you. Issues labeled good first issue are ideal starting points for new contributors.
You’ve picked an issue or created one to discuss your idea before building a solution.
Fork and clone the repository
Create your own fork on GitHub, then clone it locally:
Your local repository is set up and you can run basic build or validation steps relevant to your contribution area.
Make your changes
Follow the contribution guidelines for your area of work:
Test and verify locally
- Software: build and bench-test; add or update unit tests if available
- Hardware: validate dimensions, tolerances, and fit; include images or test prints where possible
- Documentation: build or preview the docs locally and fix broken links
Your change works as intended and does not break existing functionality.
Commit your changes
Write clear, conventional commit messages so reviewers understand your intent:
Group related changes into logical commits. Avoid mixing refactors and feature changes in one commit.
Push your branch and open a pull request
Push your branch and open a pull request on GitHub. Include:
- A clear description of what you changed and why
- References to any related issues (for example, “Fixes #123”)
- Screenshots, test results, or photos of hardware prints if applicable
Your PR description helps reviewers reproduce your results and understand your approach.
Getting help
If you get stuck or have questions:- Ask in your pull request — maintainers and contributors can help
- Join the Kinky Makers Discord — connect with other makers for real-time help
- Check existing documentation — many common questions are already answered
We welcome contributors of all skill levels. Don’t hesitate to ask questions—the community is here to help you succeed.
Troubleshooting
I’m seeing merge conflicts when I open my PR
I’m seeing merge conflicts when I open my PR
- Ensure your branch is up to date with
main:
- Resolve conflicts locally, run your tests, and force-push the updated branch.
CI or checks are failing
CI or checks are failing
- Read the failure logs to identify the exact step that failed
- Verify formatting/linting requirements and re-run tests locally
- Ask for guidance in the PR if the failure isn’t clear
Hardware part doesn’t fit or prints poorly
Hardware part doesn’t fit or prints poorly
- Re-check critical dimensions and tolerances
- Share photos and notes in your PR so others can reproduce and advise
By following this guide, you’ll be able to propose changes, collaborate with maintainers, and get your contributions merged with confidence.

