---
title: Contributing to Meshtastic
sidebar_label: Contributing
slug: /contributing
sidebar_position: 3
---

import Link from "@docusaurus/Link"

## Volunteer Based Development


Meshtastic is a team of volunteers, and as such there are always plenty of ways to help. This project gets great contributions from people in their off hours. Those contributors work on the features they are interested in. It is a very open and welcoming developer community, and we are always looking for help to improve Meshtastic.

- If you're a developer, there's plenty stuff to do. Dig in!
- If you're interacting with Meshtastic radios, we could use help with testing, documenting, and providing feedback.
- If you're into Web Development, check out the different web repos.
- If you're into Kotlin and Android, check out the link to the repo below.
- If you're into Python, check out the link to the repo below
- If you're into SwiftUI, check out the link to the repo below
- If you're into Ham Radio and LoRa, then this is a great project for you!
- ... basically... we would love to have your help and feedback

There are several developers, testers, and active users on [Discord](https://discord.gg/ktMAKGBnBs).

### Meshtastic Ecosystem

The Meshtastic ecosystem leverages a variety of technologies and repositories to provide a robust decentralized communication platform. This ecosystem is continuously evolving, thanks to the collaborative effort of developers, contributors, and the community, aiming to enhance and expand Meshtastic's capabilities for decentralized off-grid communication. 

Key components include:
- **Protocol Buffers**: The backbone of communication and interactions, with changes and definitions managed in the [Meshtastic Protobuf Definitions repository](https://github.com/meshtastic/protobufs). For detailed information, see the [Protobuf API Reference](https://buf.build/meshtastic/protobufs/).
- **Device Firmware**: Development for ESP32, nRF52, and RP2040 based devices occurs in the [firmware repository](https://github.com/meshtastic/firmware), focusing on C and C++ code for hardware interaction and communication.
- **Firmware Modules**: Extend the core functionalities of devices and mesh networks, implemented mainly within the firmware repository. Modules are essential for adding new features and integrating devices within the ecosystem.
- **CLI Apps (Device Interface)**: The [Meshtastic Python CLI](https://github.com/meshtastic/Meshtastic-python) enables interaction with device settings and functionalities, serving both as a utility and a library for application development.
- **Web and JavaScript Apps**: Development for the hosted web server on ESP32 devices is done in [Meshtastic Web](https://github.com/meshtastic/web), with a JavaScript library for device interfaces available in [Meshtastic JS](https://github.com/meshtastic/meshtastic.js).
- **Mobile and Desktop Apps**: Android, iOS, iPadOS, and macOS applications provide user interfaces for interacting with Meshtastic devices. Development for Android is detailed in the [Meshtastic-Android repository](https://github.com/meshtastic/Meshtastic-Android), while Apple platforms are supported by the [Meshtastic-Apple repository](https://github.com/meshtastic/Meshtastic-Apple).

This ecosystem is continuously evolving, thanks to the collaborative effort of developers, contributors, and the community, aiming to enhance and expand Meshtastic's capabilities for decentralized off-grid communication.


## Supporting and Contributing to Meshtastic

The Meshtastic project benefits greatly from the contributions of our volunteers and the financial support from our community. As the project has evolved, the expansion of features and services has led to increased financial needs, including hardware for development, GitHub fees, hosting for public MQTT services, among others. This growth into a robust platform for decentralized off-grid mesh networking solutions showcases the dedication of our developers and the generosity of our financial supporters.

### How You Can Support Meshtastic Financially

If direct development contribution is not feasible for you, financial support is another invaluable way to help Meshtastic grow and thrive. We offer two primary options for monetary donations:

<div className="indexCtasBody">
  <div className="split-container">
    <div className="split-item">
      <a
        className="button button--outline button--lg cta--button"
        href="https://opencollective.com/meshtastic"
        target="_blank"
        rel="noopener noreferrer"
      >
        Support on Open Collective
      </a>
    </div>

    <div className="split-item">
      <a
        className="button button--outline button--lg cta--button"
        href="https://github.com/sponsors/meshtastic"
        target="_blank"
        rel="noopener noreferrer"
      >
        Sponsor on GitHub
      </a>
    </div>
  </div>
</div>

### Fiscal Sponsorships

We're deeply thankful for the backing from the Open Collective, Open Source Collective, DigitalOcean, and Vercel, which has been instrumental in our project's sustainability and growth:

- **Open Collective & Open Source Collective**: Our collaboration with these organizations offers a robust fiscal management framework and banking solutions, supporting our project alongside over three thousand other open source initiatives. Open Collective's transparent framework lets everyone see our finances, including income, expenditures, and contributions on [Meshtastic's Open Collective page](https://opencollective.com/meshtastic). This transparency and support affirm that we're in excellent company.

- **DigitalOcean**: Champions of open source, DigitalOcean supports Meshtastic through credits, which significantly aid our development, infrastructure, and testing efforts. This contribution is part of their commitment to fostering innovation and collaboration within the open source ecosystem.

- **Vercel**: By covering our hosting costs, Vercel directly contributes to Meshtastic's growth, enhancing our web scalability and presence. Their sponsorship is crucial for our continued development and focus on creating a robust platform for decentralized communication.
