This monorepo consolidates the official Meshtastic web interface and its supporting JavaScript libraries. It aims to provide a unified development experience for interacting with Meshtastic devices.
All projects are located within the packages/
directory:
packages/web
(Meshtastic Web Client): The official web interface, designed to be hosted or served directly from a Meshtastic node.packages/core
: Core functionality for Meshtastic JS.packages/transport-deno
: TCP Transport for the Deno runtime.packages/transport-http
: HTTP Transport.packages/transport-web-bluetooth
: Web Bluetooth Transport.packages/transport-web-serial
: Web Serial Transport.
All Meshtastic JS
packages (core and transports) are published to
JSR.
Project | Repobeats |
---|---|
Meshtastic Web Client | |
Meshtastic JS |
This monorepo leverages the following technologies:
- Runtime: Deno
- Web Client: React.js
- Styling: Tailwind CSS
- Bundling: Vite
- Language: TypeScript
- Testing: Vitest, React Testing Library
You'll need to have Deno installed to work with this monorepo. Follow the installation instructions on their home page.
- Clone the repository:
git clone [https://github.com/meshtastic/meshtastic-web.git](https://github.com/meshtastic/meshtastic-web.git) cd meshtastic-web
- Install dependencies for all packages:
This command installs all necessary dependencies for all packages within the monorepo.
deno task install:all
To start the development server for the web client:
deno task --filter web dev
This will typically run the web client on http://localhost:3000 and requires a Chromium browser
While the js packages are primarily libraries, you can run their tests or specific development scripts if defined within their deno.json files. For example, to run tests for a specific package:
deno task --filter core test
If you encounter any issues with nightly builds, please report them in our issues tracker. Your feedback helps improve the stability of future releases
Meshtastic Web uses Deno as its development platform for several compelling reasons:
- Built-in Security: Deno's security-first approach requires explicit permissions for file, network, and environment access, reducing vulnerability risks.
- TypeScript Support: Native TypeScript support without additional configuration, enhancing code quality and developer experience.
- Modern JavaScript: First-class support for ESM imports, top-level await, and other modern JavaScript features.
- Simplified Tooling: Built-in formatter, linter, test runner, and bundler eliminate the need for multiple third-party tools.
- Reproducible Builds: Lockfile ensures consistent builds across all environments.
- Web Standard APIs: Uses browser-compatible APIs, making code more portable between server and client environments.
We welcome contributions! Here’s how the deployment flow works for pull requests:
-
Preview Deployments:
Every pull request automatically generates a preview deployment on Vercel. This allows you and reviewers to easily preview changes before merging. -
Staging Environment (
client-test
):
Once your PR is merged, your changes will be available on our staging site: client-test.meshtastic.org.
This environment supports rapid feature iteration and testing without impacting the production site. -
Production Releases:
At regular intervals, stable and fully tested releases are promoted to our production site: client.meshtastic.org.
This is the primary interface used by the public to connect with their Meshtastic nodes.
Please review our Contribution Guidelines before submitting a pull request. We appreciate your help in making the project better!