diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 00000000..f770b261
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,5 @@
+# Protect this CODEOWNERS file from change
+/.github/CODEOWNERS @meshtastic/admins
+
+# Protect the legal directory from change
+/docs/legal/* @meshtastic/admins
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index faac55cb..6a941be2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -19,7 +19,7 @@ jobs:
version: latest
- name: Run Biome
- run: biome ci .
+ run: biome ci . --diagnostic-level=error
build:
runs-on: ubuntu-latest
steps:
@@ -40,4 +40,4 @@ jobs:
run: pnpm install
- name: Build Package
- run: pnpm run build
\ No newline at end of file
+ run: pnpm run build
diff --git a/README.md b/README.md
index 1a8fe78f..b41774bd 100644
--- a/README.md
+++ b/README.md
@@ -15,22 +15,4 @@ Website and documentation source for the Meshtastic project.
## Development & Building
-nodejs is required in your dev. environment. The method for installing nodejs depends on your operating system. This software is built using [Docusaurus](https://docusaurus.io).
-
-Go to the root directory of your repository and install dependencies:
-
-```shell
-pnpm install
-```
-
-Build the project with the following command
-
-```shell
-pnpm build
-```
-
-Start a local dev. instance with the following command
-
-```shell
-pnpm start
-```
+For complete instructions on setting up your development environment and for building and running the project locally, please refer to our [Local Development Guide](https://meshtastic.org/docs/development/documentation/local-dev/).
diff --git a/biome.json b/biome.json
index 32a4e0fe..570d35bb 100644
--- a/biome.json
+++ b/biome.json
@@ -4,7 +4,8 @@
"enabled": true
},
"files": {
- "ignoreUnknown": true
+ "ignoreUnknown": true,
+ "ignore": ["*.json"]
},
"vcs": {
"enabled": true,
diff --git a/docs/about/contributing.mdx b/docs/about/contributing.mdx
index dfc6c4a1..574e08e0 100644
--- a/docs/about/contributing.mdx
+++ b/docs/about/contributing.mdx
@@ -1,10 +1,15 @@
---
-title: Community Guide
+title: Contributing to Meshtastic
sidebar_label: Contributing
slug: /contributing
sidebar_position: 3
+description: "Get involved with Meshtastic's open-source project. Contribute to device firmware, web apps, or mobile and desktop apps. Your expertise can help enhance this volunteer-driven communication platform."
---
-### Volunteer Based Development
+
+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.
@@ -19,38 +24,62 @@ Meshtastic is a team of volunteers, and as such there are always plenty of ways
There are several developers, testers, and active users on [Discord](https://discord.gg/ktMAKGBnBs).
-## Meshtastic Ecosystem
+### Meshtastic Ecosystem
-There are many technologies (and repositories) used in creating the Meshtastic ecosystem. Below is a breakdown:
+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.
-### Protocol Buffers
+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).
+- **Documentation**: The source for the Meshtastic website and documentation resides in the [meshtastic/meshtastic repository](https://github.com/meshtastic/meshtastic). For guidelines on maintaining documentation, visit the [Maintaining Documentation](/docs/development/docs) page.
-Most communication and interactions happen with protocol buffers. The [Meshtastic Protobuf Definitions](https://github.com/meshtastic/protobufs) repo is where all of the protocol buffer changes happen. See the [Protobuf API Reference](https://buf.build/meshtastic/protobufs/) for more details.
+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.
-### Device Firmware
-The [firmware repo](https://github.com/meshtastic/firmware) is where all of the device firmware development happens. This is where the code for the ESP32, nRF52 and RP2040 based devices is developed. It is mainly C and C++ code. Think Arduino. It is where the first level of hardware interaction begins and ends.
+## Supporting and Contributing to Meshtastic
-### Firmware Modules
+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.
-[Modules](/docs/configuration/module) extend device and mesh functionality beyond core functions. These are also implemented mainly in the firmware repo above. Typically, you would add functions in the protobufs repo and the device repo to implement module functionality. You probably also want to have some client or device, use or interact with the module. This is where Device Interface support comes into play.
+### How You Can Support Meshtastic Financially
-### CLI Apps (Device Interface)
+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:
-- **Meshtastic Python CLI** - The [meshtastic/Meshtastic-python repository](https://github.com/meshtastic/Meshtastic-python) is a command line utility that allows you to interact with most of the device settings and functionality. This python library can also be consumed for other applications. See [Meshtastic Python Development](/docs/development/python/) for more details
+
- Meshtastic is community driven. Thousands of hours have been donated
- by volunteers who want to develop this amazing project. Whether
- you've submitted a pull request or triaged a bug in our
- Discord/Forum. You've made Meshtastic possible. Thank you for your
- contributions.
-
-
- We would also like to recognize those who have donated financially
- to the project. As Meshtastic has grown, we've aquired some ongoing
- costs to keep the project running. Thank you for your generous
- donations.
-
-
-
-
Fiscal Sponsors
-
- We have partnered with both the{" "}
-
- Open Collective
- {" "}
- and the{" "}
-
- Open Source Collective
- {" "}
- to help us with a fiscal management framework and banking needs.
- They help support over three thousand open source projects including
- the PHP Foundation, F-Droid, Sonarr, LinuxServer and DarkReader. We
- are in good hands and good company.
-
-
- As with everything we do here, Open Collective provides a fully
- transparent framework for our budget and expenses. You can see what
- we’re bringing in, who is spending money and where that money is
- going{" "}
-
- here
-
- .
-
-
- In addition to our partnership with Open Collective and Open Source
- Collective, we have also been approved into the{" "}
-
- GitHub Sponsors
- {" "}
- program where we can set fundraising goals with GitHub.
-
-
- All donations made through GitHub will be deposited to our account
- with the Open Source Collective and managed by the Open Collective.
- This means we have a single place to monitor and maintain
- transparency of our finances.
-
-
If you are able, please contribute to this amazing project.
-
-
- Sponsor Meshtastic
-
-
-
-
-
Contributors
-
- Literally thousands of hours have gone into creating, maintaining,
- and improving Meshtastic. Without our contributors none of this
- would be possible. Thank you for donating the time for each and
- every commit, issue, and pull request.
-
-
+
+
+
diff --git a/src/pages/downloads/index.tsx b/src/pages/downloads/index.tsx
index 75911f38..af2c50d2 100644
--- a/src/pages/downloads/index.tsx
+++ b/src/pages/downloads/index.tsx
@@ -10,7 +10,7 @@ import {
} from "@heroicons/react/24/solid";
import Layout from "@theme/Layout";
-import { FirmwareReleases } from "../../utils/apiTypes";
+import type { FirmwareReleases } from "../../utils/apiTypes";
import { fetcher } from "../../utils/swr";
import {
FirmwareCard,
@@ -63,7 +63,8 @@ const Firmware = (): JSX.Element => {
Devices such as T-Echo, RAK4631, and RAK11300 are flashed via
- filesystem. Use the web flasher to download applicable firmware.
+ filesystem. Use the web flasher to download applicable
+ firmware.
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index b25c19d5..af0421a7 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -4,7 +4,10 @@ import useBaseUrl from "@docusaurus/useBaseUrl";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import Layout from "@theme/Layout";
-import { SocialCard, SocialCardProps } from "../components/homepage/SocialCard";
+import {
+ SocialCard,
+ type SocialCardProps,
+} from "../components/homepage/SocialCard";
const SocialCards: SocialCardProps[] = [
{
@@ -36,7 +39,7 @@ const SocialCards: SocialCardProps[] = [
),
},
diff --git a/src/pages/tools/OEM.tsx b/src/pages/tools/OEM.tsx
index 71298c42..da17f9d4 100644
--- a/src/pages/tools/OEM.tsx
+++ b/src/pages/tools/OEM.tsx
@@ -85,7 +85,7 @@ const OEM = (): JSX.Element => {
Font