https://github.com/meshtastic/web
Meshtastic Web Client
https://github.com/meshtastic/web
meshtastic
Last synced: about 1 month ago
JSON representation
Meshtastic Web Client
- Host: GitHub
- URL: https://github.com/meshtastic/web
- Owner: meshtastic
- License: gpl-3.0
- Created: 2021-08-05T23:04:39.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-17T01:05:50.000Z (4 months ago)
- Last Synced: 2025-02-18T03:42:41.751Z (4 months ago)
- Topics: meshtastic
- Language: TypeScript
- Homepage: https://client.meshtastic.org
- Size: 3.63 MB
- Stars: 317
- Watchers: 24
- Forks: 131
- Open Issues: 64
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - meshtastic/web - Meshtastic Web Client (TypeScript)
README
# Meshtastic Web
[](https://github.com/meshtastic/web/actions/workflows/ci.yml)
[](https://cla-assistant.io/meshtastic/web)
[](https://opencollective.com/meshtastic/)
[](https://vercel.com?utm_source=meshtastic&utm_campaign=oss)## Overview
Official [Meshtastic](https://meshtastic.org) web interface, that can be hosted
or served from a node**[Hosted version](https://client.meshtastic.org)**
## Stats

## Progress Web App Support (PWA)
Meshtastic Web Client now includes Progressive Web App (PWA) functionality,
allowing users to:- Install the app on desktop and mobile devices
- Access the interface offline
- Receive updates automatically
- Experience faster load times with cachingTo install as a PWA:
- On desktop: Look for the install icon in your browser's address bar
- On mobile: Use "Add to Home Screen" option in your browser menuPWA functionality works with both the hosted version and self-hosted instances.
## Self-host
The client can be self hosted using the precompiled container images with an OCI
compatible runtime such as [Docker](https://www.docker.com/) or
[Podman](https://podman.io/). The base image used is
[Nginx 1.27](https://hub.docker.com/_/nginx)```bash
# With Docker
docker run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web#With Podman
podman run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web
```## Release Schedule
Our release process follows these guidelines:
- **Versioning:** We use Semantic Versioning (`Major.Minor.Patch`).
- **Stable Releases:** Published around the beginning of each month (e.g.,
`v2.3.4`).
- **Pre-releases:** A pre-release is typically issued mid-month for testing and
early adoption.
- **Nightly Builds:** An experimental Docker image containing the latest
cutting-edge features and fixes is automatically built nightly from the
`master` branch.### Nightly Builds
```bash
# With Docker
docker run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web:nightly
#With Podman
podman run -d -p 8080:8080 --restart always --name Meshtastic-Web ghcr.io/meshtastic/web:nightly
```> [!WARNING]
>
> - Nightly builds represent the latest development state and may contain
> breaking changes
> - These builds undergo automated testing but may be less stable than tagged
> release versions
> - Not recommended for production environments unless you are actively testing
> new features
> - No guarantee of backward compatibility between nightly builds#### Version Information
Each nightly build is tagged with:
- The nightly tag for the latest build
- A specific SHA for build reproducibility### Feedback
If you encounter any issues with nightly builds, please report them in our
[issues tracker](https://github.com/meshtastic/web/issues). Your feedback helps
improve the stability of future releases## Development & Building
You'll need to download the package manager used with this repo. You can install
it by visiting [deno.com](https://deno.com/) and following the installation
instructions listed on the home page.### Development
Install the dependencies.
```bash
deno i
```Start the development server:
```bash
deno task dev
```### Building and Packaging
Build the project:
```bash
deno task build
```GZip the output:
```bash
deno task package
```### Why Deno?
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.### Contributing
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](https://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](https://client.meshtastic.org/).\
This is the primary interface used by the public to connect with their
Meshtastic nodes.Please review our
[Contribution Guidelines](https://github.com/meshtastic/web/blob/master/CONTRIBUTING.md)
before submitting a pull request. We appreciate your help in making the project
better!