Official Meshtastic web interface, that can be hosted or served from a node
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 caching
To 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 menu
PWA functionality works with both the hosted version and self-hosted instances.
The client can be self hosted using the precompiled container images with an OCI compatible runtime such as Docker or Podman. The base image used is Nginx 1.27
# 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
Our nightly releases provide the latest development builds with cutting-edge features and fixes. These builds are automatically generated from the latest main branch every night and are available for testing and early adoption.
# 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
Each nightly build is tagged with:
- The nightly tag for the latest build
- A specific SHA for build reproducibility
If you encounter any issues with nightly builds, please report them in our issues tracker. Your feedback helps improve the stability of future releases
You'll need to download the package manager used with this repo. You can install it by visiting Bun.sh and following the installation instructions.
Meshtastic Web Client has included the library React Scan to help you identify and resolve render performance issues during development.
React's comparison-by-reference approach to props makes it easy to inadvertently cause unnecessary re-renders, especially with:
- Inline function callbacks (
onClick={() => handleClick()}
) - Object literals (
style={{ color: "purple" }}
) - Array literals (
items={[1, 2, 3]}
)
These are recreated on every render, causing child components to re-render even when nothing has actually changed.
Unlike React DevTools, React Scan specifically focuses on performance optimization by:
- Clearly distinguishing between necessary and unnecessary renders
- Providing render counts for components
- Highlighting slow-rendering components
- Offering a dedicated performance debugging experience
When experiencing slow renders, run:
bun run dev:scan
This will allow you to discover the following about your components and pages:
- Components with excessive re-renders
- Performance bottlenecks in the render tree
- Expensive hook operations
- Props that change reference on every render
Use these insights to apply targeted optimizations like React.memo()
, useCallback()
, or useMemo()
where they'll have the most impact.
Build the project:
bun run build
GZip the output:
bun run package
Install the dependencies.
bun i
Start the development server:
bun run dev