You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Dan Ditomaso 4ab06abefe
fix: update directory paths for source files (#745)
10 months ago
.githooks/_ refactor: switch to using Bun (#718) 11 months ago
.github fix: update directory paths for source files (#745) 10 months ago
.vscode refactor: switch to using Bun (#718) 11 months ago
packages fix: update directory paths for source files (#745) 10 months ago
scripts Fix/add npm jsr building (#722) 11 months ago
.gitignore Add npm publishing of JS libs (#702) 11 months ago
.npmrc add npmrc to root (#696) 11 months ago
LICENSE Add npm publishing of JS libs (#702) 11 months ago
README.md Fix readme and remove broken git link attempting to be a hyperlink (#733) 11 months ago
biome.json Fix/add npm jsr building (#722) 11 months ago
bun.lock add tsconfig to monorepo (#737) 10 months ago
deno.lock Fix/add npm jsr building (#722) 11 months ago
package.json Fix/add npm jsr building (#722) 11 months ago
tsconfig.base.json add tsconfig to monorepo (#737) 10 months ago
tsconfig.json add tsconfig to monorepo (#737) 10 months ago

README.md

Meshtastic Web Monorepo

CI CI CLA assistant Fiscal Contributors Vercel

Overview

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.

Projects within this Monorepo (packages/)

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-node: TCP Transport for the NodeJS runtime.
  • 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 both to JSR. NPM


Stats

Project Repobeats
Meshtastic Web Alt

Tech Stack

This monorepo leverages the following technologies:

  • Runtime: Bun
  • Web Client: React.js
  • Styling: Tailwind CSS
  • Bundling: Vite
  • Language: TypeScript
  • Testing: Vitest, React Testing Library

Getting Started

Prerequisites

You'll need to have Bun installed to work with this monorepo. Follow the installation instructions on their home page.

Development Setup

  1. Clone the repository:
    git clone https://github.com/meshtastic/meshtastic-web.git
    cd meshtastic-web
    
  2. Install dependencies for all packages:
    bun install
    

    This command installs all necessary dependencies for all packages within the monorepo.

Running Projects

Meshtastic Web Client

To start the development server for the web client:

cd ./packages/web && bun run dev

This will typically run the web client on http://localhost:3000 and requires a Chromium browser

Feedback

If you encounter any issues with nightly builds, please report them in our issues tracker. Your feedback helps improve the stability of future releases

Why Bun?

Meshtastic Web uses Bun as its development platform for several compelling reasons:

  • Fast Performance: Bun is built from the ground up for speed, offering significantly faster package installation and bundling compared to other JavaScript runtimes.
  • 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.
  • All-in-One Tooling: Built-in package manager, bundler, test runner, and transpiler eliminate the need for multiple third-party tools.
  • Node.js Compatibility: Drop-in replacement for Node.js with better performance and built-in tooling.
  • Reproducible Builds: Lockfile ensures consistent builds across all 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.
    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!