About
Stats Map Contact
Join Discord

Help build the network.

Add builds, post events, update bounties, submit PRs — every contribution helps grow the mesh.

Overview

The Central Valley Mesh website is a static HTML/CSS/JS site hosted on GitHub Pages. There's no build step, no framework, no CMS — just files you can edit directly.

The repo lives at github.com/CentralValleyMesh/centralvalleymesh.github.io. To contribute, you fork it, make your changes, and open a pull request. A maintainer will review and merge it.

No GitHub account? No problem — drop your content in #website on Discord and a maintainer will post it for you.

File Structure

Here's what the repo looks like and where things live:

centralvalleymesh/
  index.html     ← home page
  /about/
  docs.html
  builds.html    ← build listing page
  community.html
  bounties.html  ← bounty board
  events.html    ← add events here
  map.html
  contact.html
  contribute.html  ← this page
  found.html     ← QR code landing page
  404.html
  builds/
    _template/       ← copy this folder
      index.html
    magnetic-sticky-node/
      index.html
      magnet-build-1.jpg
      magnet-build-2.jpg
    your-build-name/    ← your folder goes here
      index.html
      your-photo.jpg
  docs/
    getting-started.html
    faq.html
    tools.html
    config-wizard.html  ← interactive config generator
  css/
    style.css     ← global styles
    home.css      ← home page only
  images/          ← put your photos here
  js/
    main.js       ← nav, theme toggle
    stats.js      ← live node/route widgets (index page)

Add a Build Post

Each build lives in its own folder inside builds/ alongside its own images. Copy the builds/_template/ folder, rename it to your build name, and edit the index.html inside.

Then add a card for it on builds.html — copy an existing card and update the title, description, tags, image path, and link.

builds/your-build-name/index.html — starter template
<!-- Copy builds/_template/ folder, rename it, then edit index.html -->
<!-- and replace these values: -->

Title:     Your Build Name
Author:    Your Discord username
Date:      Month DD, YYYY
Category: Community
Tags:      Hardware names, features (e.g. T-Beam, Solar, Portable)
Images:    Put photos in your build folder, reference as ./your-photo.jpg
Parts:     Link to Amazon/Adafruit/etc for each component
Images: Put your photos directly in your build folder (e.g. builds/your-build-name/photo.jpg). JPG or WebP recommended, keep files under 1MB each. Reference them in your build page as ./your-photo.jpg or just photo.jpg.

Edit Existing Content

Every page is a plain HTML file. Open it in any text editor, find the text you want to change, edit it, and save. Here's exactly how to edit each common thing:

Add or edit an event

Open events.html. Copy any existing <div class="event-card"> block and paste it above or below. Fill in the date, title, type badge (meetup, online, deploy, or workshop), location, and description. For past events, add class="event-card past" to the outer div. Generate calendar links at calndr.link.

Add a hardware bounty

Open community.html and find the <section id="hardware-bounty"> section (search for "Bounty Board"). Copy an existing bounty card block, update the location name, description, and the "Volunteer in Discord" link. The dashed placeholder card at the bottom marks where to add new ones.

Add a community to the California list

Open community.html and find the right region block (Northern CA, Central Valley, or Southern CA). Copy an existing <div class="comm-card" data-href="..."> block and update the abbreviation badge, name, description, and links. The JS click handler is automatic.

Update MQTT / network settings

The config card appears on the home page (index.html — search for config-card-header) and in the Config Wizard (docs/config-wizard.html — update the readonly input values and the JS gen() function). Also update docs/getting-started.html and docs/faq.html to match.

Update the announcement bar

Open js/main.js and find the ANNOUNCE object at the top. Set enabled: true, update the message string (supports HTML links), and change the id to a new unique string — this clears everyone's dismissed state so they'll see the new message. Set enabled: false to hide it globally.

Add a FAQ question

Open docs/faq.html and copy an existing .faq-item block. Add your question as the button text and the answer inside the .faq-body div. Place it under the relevant .section-label heading.

Add a tool or resource

Open docs/tools.html. For a CVM tool, add to the "CVM Tools" .grid-2 section at the top. For an external tool, copy an existing .doc-card link under the right section (Firmware, Network, Apps) and update the URL, title, and description.

Typos and copy changes

Just open the relevant HTML file in any text editor, use Ctrl+F to find the text you want to change, edit it, and save. Every page is a self-contained HTML file — nothing will break.

Submit a Pull Request

1

Fork the repository

Go to the repo on GitHub and click Fork in the top right. This creates your own copy.

2

Make your changes

You can edit files directly on GitHub using the pencil icon, or clone the repo locally. For build posts with images, cloning locally is easier.

git clone https://github.com/YOUR-USERNAME/centralvalleymesh.github.io.git
cd centralvalleymesh.github.io
3

Preview locally

Run a local server to see your changes before submitting:

python3 -m http.server 8080
# then open http://localhost:8080
4

Commit and push

git add .
git commit -m "Add [your-build-name] build post"
git push
5

Open a pull request

Go back to the main repo on GitHub. You'll see a banner prompting you to open a PR. Click it, add a short description of what you changed, and submit.

No-Code Option

Not comfortable with GitHub? No problem at all — drop your content in the #builds or #website channel on Discord and a maintainer will post it for you.

For a build post, include:

Photos of your build (exterior and interior if possible)

Parts list with links (Amazon, Adafruit, etc.)

Short description of what it does, any tricks or gotchas

Post in #builds on Discord

Content Guidelines

Keep it relevant

Content should be about Meshtastic, LoRa mesh networking, or community activity in or around the Central Valley.

No promotion or spam

No affiliate links, no paid promotions, no selling. Plain Amazon/manufacturer links for parts are fine.

Honest and accurate

If something didn't work or was hard, say so. Honest build notes are more useful than perfect-sounding ones.

Follow the community guidelines

Same rules as Discord — no politics, religion, SHAT content, or inappropriate material. See the community guidelines for the full list.

Questions? Ask in #website on Discord — someone will help you get your contribution posted.

Join Discord