Open Source Community

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.

Beginner friendly
πŸ“

Documentation

Improve documentation, write tutorials, create video guides. Documentation is as important as code.

Beginner friendly
πŸ§ͺ

Testing

Test new releases, explore edge cases, verify that fixes work properly. Testers are crucial.

Intermediate
πŸ’»

Code Contributions

Fix bugs, implement features, optimize performance. Every pull request is welcome.

Advanced
🎨

UI/UX Design

Improve the app interface, create mockups for new features, test usability.

Design skills
🌍

Translations

Translate the app, firmware, and documentation to other languages. Help make MeshCore available worldwide.

Beginner friendly

Development Workflow

1

Fork The Repository

Create a fork of the MeshCore repository on GitHub. This is your own copy where you can freely experiment.

2

Create A Branch

Create a new branch for your feature or bugfix. Use descriptive names like "fix-routing-bug" or "add-telemetry-sensor".

3

Write Code And Test

Implement your change and test thoroughly. Ensure existing functionality still works. Add comments for complex code.

4

Submit Pull Request

Submit a pull request to the main repository. Describe what you changed and why. Link to relevant issues.

5

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!