Developer participation

Contributing to MeshCore development

Shape the future of MeshCore through code submissions, feature proposals, and community collaboration

Joining the development effort

MeshCore firmware exists as a completely open project shaped by contributors spanning the globe. Whether squashing bugs, implementing enhancements, improving documentation, or reviewing submissions, your participation makes a tangible difference.

The maintainers welcome contributions at every skill level. Minor documentation tweaks carry as much value as major protocol enhancements. By contributing, you simultaneously advance the project whilst deepening your embedded systems expertise.

This walkthrough covers the practical mechanics of contributing: configuring your environment, crafting quality submissions, and navigating the review process.

Reasons to get involved

๐ŸŽฏ

Tangible influence

Your code ships to mesh network operators worldwide, running on thousands of deployed nodes

๐Ÿ“š

Skill development

Gain hands-on experience with embedded platforms, radio protocols, C++, and real-time constraints

๐Ÿค

Community belonging

Connect with like-minded developers who share your enthusiasm for decentralised communication

โšก

Scratch your own itch

Missing a feature? Build it yourself and benefit the entire user base simultaneously

๐Ÿ’ผ

Professional development

Open source contributions demonstrate initiative and capability to potential EMPloyers

๐ŸŽ“

Expert guidance

Receive constructive feedback from experienced contributors through the review process

Contribution mechanics

Standard GitHub collaboration practices apply to MeshCore development

1

Step 1: create your working copy

Fork the repository to your account and clone locally:

git clone https://github.com/YOUR_USERNAME/MeshCore.git cd MeshCore git remote add upstream https://github.com/meshcore-dev/MeshCore.git
2

Step 2: branch for your changes

Create a descriptive branch name reflecting your planned work:

git checkout -b feature/add-sensor-support # or git checkout -b fix/routing-bug
3

Step 3: develop and test

Write clean, tested code following project conventions. Commit frequently with meaningful messages. Add automated tests where feasible.

4

Step 4: submit for review

Push your branch and open a pull request with clear description:

git push origin feature/add-sensor-support # Then create PR through GitHub web interface
5

Step 5: iterate based on feedback

Maintainers review submissions and provide constructive suggestions. Address comments, push updates, and collaborate until approval and merge.

Ways to contribute

Multiple paths exist for meaningful participation

๐Ÿ› Defect corrections

Address issues discovered during your own usage:

  • โ€ข Establish reliable reproduction steps
  • โ€ข Fix the underlying cause, not just symptoms

โœจ New capabilities

Propose and implement new functionality:

  • โ€ข Discuss scope with maintainers via issues first
  • โ€ข Draft design documents for substantial changes

๐Ÿ“– Documentation improvements

Enhance guides, examples, and code comments:

  • โ€ข Correct errors and outdated information
  • โ€ข Create tutorials addressing common questions

๐Ÿงช Quality assurance

Strengthen the testing infrastructure:

  • โ€ข Exercise new releases on varied hardware
  • โ€ข Expand automated test coverage

Contribution standards

  • โœ“

    Adhere to style conventions - Reference CONTRIBUTING.md for project coding standards

  • โœ“

    Write informative commit messages - Explain rationale, not just mechanics

  • โœ“

    Keep submissions focused - One logical change per pull request

  • โœ“

    Include tests - New functionality requires accompanying verification

  • โœ“

    Maintain documentation - API changes necessitate corresponding docs updates

  • โœ“

    Communicate respectfully - Engage constructively with reviewers and community

Developer questions

Must I be highly experienced to contribute?

Absolutely not! Newcomers are genuinely valued. Documentation improvements and minor fixes provide ideal entry points. Community members actively support new contributors through the learning curve.

What review turnaround should I expect?

Typically one to two weeks, varying with submission complexity and maintainer availability. Larger features naturally require more consideration. A polite follow-up in community channels is acceptable if delays extend significantly.

What if my submission is declined?

Occasionally this happens due to scope, timing, or technical direction concerns. Maintainers explain their reasoning. Treat feedback as learning opportunity and consider alternative approaches.

Does MeshCore require a contributor agreement?

No formal CLA exists. Submissions automatically inherit the project's open source licence. Check the LICENSE file for specific terms.

Are paid contribution opportunities available?

MeshCore relies primarily on volunteer effort. Occasionally, organisations sponsor specific feature development. Enquire in community channels about any current bounty programmes.

Start contributing today

Every contribution level advances the project meaningfully - from typo corrections to architectural changes

Fork the repository, make your first change, and submit that pull request!