MeshCore Open Source Development
How the MeshCore community collaborates on open source development: licenses, contributions, and development workflow
Why Is MeshCore Open Source?
MeshCore is open source software: the complete source code is publicly accessible on GitHub. Anyone can review, utilize, modify, and enhance the code. This deliberate choice promotes transparency, security, and community-driven development.
Open source means not merely that the code is available, but also that an active community of developers, users, and enthusiasts collaborate on improvements. Everyone can contribute: from reporting bugs to implementing new features.
This page explains how the open source development process functions, how you can contribute, and the benefits of participating.
License And Philosophy
MIT License (Permissive)
The MeshCore firmware utilizes the MIT license, one of the most permissive open source licenses. You may use the code for any purpose, including commercial applications.
Freedoms: Use, copy, modify, distribute, sublicense
GPL For Certain Components
Some components utilize GPL (copyleft). If you incorporate these components in your own project, you must also release your code as open source under GPL.
Copyleft: Derivative works must also be GPL
Open Source Philosophy
MeshCore embraces open source principles: transparency, collaboration, community ownership. The network belongs to everyone, not to any single company or organization.
Ways To Contribute
You need not be an experienced developer to contribute. There are ways for every level:
Bug Reports
Report bugs, crashes, or unexpected behavior via GitHub Issues. Quality bug reports help enormously.
Documentation
Improve documentation, write tutorials, create video guides. Documentation is as important as code.
Testing
Test new releases, explore edge cases, verify that fixes work properly. Testers are crucial.
Code Contributions
Fix bugs, implement features, optimize performance. Every pull request is welcome.
UI/UX Design
Improve the app interface, create mockups for new features, test usability.
Translations
Translate the app, firmware, and documentation to other languages. Help make MeshCore available worldwide.
Development Workflow
Fork The Repository
Create a fork of the MeshCore repository on GitHub. This is your own copy where you can freely experiment.
Create A Branch
Create a new branch for your feature or bugfix. Use descriptive names like "fix-routing-bug" or "add-telemetry-sensor".
Write Code And Test
Implement your change and test thoroughly. Ensure existing functionality still works. Add comments for complex code.
Submit Pull Request
Submit a pull request to the main repository. Describe what you changed and why. Link to relevant issues.
Code Review And Merge
The maintainers review your code, provide feedback, and merge upon approval. This process can be iterative with multiple review rounds.
Benefits Of Open Source
Security
Everyone can audit the code. No hidden backdoors or privacy violations.
Rapid Innovation
Hundreds of developers worldwide contribute. Innovation proceeds considerably faster than with closed source.
Community Ownership
The project belongs to the community, not to any single company. It will exist as long as users want it.
Learning Platform
Learn from the code, experiment, improve your skills. Open source is an excellent way to learn.
Customizability
Adapt the software for your specific use case. No vendor lock-in.
Free
No license costs, no subscriptions. Completely free to use, now and forever.
Frequently Asked Questions
Do I need to know C++ to contribute?
Not necessarily. You can contribute with bug reports, documentation, testing, and translations without programming knowledge. For code contributions you do need C/C++ knowledge.
Who decides which features are accepted?
The core maintainers review pull requests and decide on acceptance. They consider code quality, whether it fits the roadmap, and whether it breaks existing functionality.
Can I use the code in my commercial product?
Yes, the MIT license permits commercial use. Note that some components are GPL, which requires you to also make your code open source.
How often are pull requests reviewed?
The maintainers endeavor to respond to pull requests within 1-2 weeks. During busy periods this may take longer. Patience is appreciated.
Is there a developer community chat?
Yes, there is an active Discord server where developers and users ask questions, share ideas, and collaborate.
Can I fork and add my own features?
Absolutely. That is the entire point of open source. You can fork, add features that are not accepted in the main branch, and distribute your own version (according to the license terms).
Become Part Of The Community
MeshCore grows through community contributions. Every bit helps: from a simple bug report to a major feature implementation. Join the community!