Handbook

Changing the website

How the LAMBO website is put together, the three ways to change it, and recipes for the changes that come up most.

How the site works, in four sentences

The website is a set of files in a shared folder on GitHub (the “repository”, or repo). Trail pages, events and news are text files; sponsors, board members, trail conditions and campaign totals are small data files. Every time a change lands on the main copy, Cloudflare rebuilds the site in about a minute and puts it online. There is no admin login, and nothing breaks by clicking around.

Two addresses: the preview is lambo.lamboridersemail.workers.dev, the board’s review copy. The live site is lambo.rocks; until the board approves the cutover, that is still the old site.

Three ways to change something

1. Ask Claude (the normal way). In LAMBO’s Claude workspace, open Claude Code with the lambo repository and say what you want in plain words: “Add the Fatathlon on February 7 at 10 am at the Zip, $25, register at bikereg.com/…”. Claude edits the right file, checks that the site still builds, and opens a pull request: a proposed change with its own preview link. Open the link, look at the page, and if it’s right press Merge. A minute later it’s on the site. If it’s wrong, say what to fix in the pull request and Claude tries again.

Small data changes (a trail condition, a campaign total, a minutes link) skip the pull request and go straight on; you’ll see them on the site a minute later.

2. Edit the file yourself on GitHub. For a typo: open the repository on github.com, find the file (table below), click the pencil, fix it, and choose “Create a new branch and start a pull request”. Same review step as above. The click-by-click version, with every file, field and recipe and no Claude involved, is the website manual (docs/site-manual.md, on GitHub only).

3. Ask the steward named in the board policy (docs/policy.md).

What lives where

What File Who normally changes it
Trail pages site/src/content/trails/<trail>.md Trail boss, through Claude
Events site/src/content/events/<event>.md Event lead
News posts site/src/content/news/<post>.md Anyone on the board
Trail conditions site/src/data/conditions.json The trail-boss form, automatically
Campaign meters site/src/data/campaigns.json Little Green Light nightly; the treasurer until then
Member wall (opt-in) site/src/data/members.json Automatically from Little Green Light
Sponsors, board, minutes links site/src/data/sponsors.json, board.json, minutes.json Secretary
Year in numbers, finances site/src/data/impact.json, finances.json Treasurer
Summer or winter homepage site/src/data/season.json Zip trail boss
Addresses, payment links, membership prices site/src/data/org.ts Treasurer, through Claude
Images site/public/img/ Whoever adds the page

Recipes

Each of these is also a slash command in Claude Code: type /add-event, /news-post, /post-minutes, /update-conditions, /update-campaign, /season-flip, /year-numbers, /newsletter-draft or /sponsor-letter and answer the questions.

Add an event. Give Claude the name, date (and time, if there is one), place, kind (race, ride, work day, meeting, social, course), cost, registration link, volunteer sign-up link, a photo if you have one, and a paragraph. Annual events without a date yet are fine: say so, and the page shows the date as still to be announced.

Post news. Title, date, a paragraph or three, and a photo. Keep it to what happened and what’s next.

Add the month’s minutes. Once the board approves the minutes, give Claude the Google Doc link. It goes on the Minutes page the same day. The link must be one anyone can open (in Google Docs: Share → Anyone with the link → Viewer).

Update a trail condition. Trail bosses use the phone form; the site updates itself within the hour. Until the form exists, tell Claude the trail, Open / Caution / Closed, one sentence for riders, and your name.

Update a campaign meter. The treasurer gives the dollars raised and the number of donors. Nothing is ever estimated; if the number isn’t known, the meter stays where it is.

Flip the homepage to winter. When the Zip is groomed, say “flip the site to winter”; at melt-out, “flip to summer”.

Add a photo. Send the original. Claude resizes it (long side 1800 pixels) and puts it under site/public/img/. Photos of kids need a parent’s okay before they go on the site.

Change where Join or Donate goes. Treasurer only: give Claude the new form address. These are the most important links on the site; press both buttons on the preview before merging.

Add a sponsor or a board member. Sponsor: name, website, logo (PNG or SVG), tier, which trails. Board member: name, role, photo.

Checking a preview

Before you merge, look at the page on a phone as well as a computer, and check that Join and Donate are still at the top of every page and the campaign meter is still on the homepage. Those two things are the site’s job.

If something goes wrong

Every change can be undone. On GitHub, open the pull request that caused it and press Revert, or tell Claude “undo the last change to the events page”. The site rebuilds in a minute either way. Nothing you do on the website can affect Little Green Light, Mailchimp or the bank.

Rules the site follows

  • Never invent numbers. Totals, member counts, dates and volunteer hours come from our records or a person. If unknown, leave it out.
  • Join and Donate stay reachable from every page.
  • Dates are calendar days in Central time.
  • Images are at most 1800 pixels on the long side.
  • Old addresses keep working. If a page moves, the old link is redirected.

Updated October 30, 2026. Source: docs/handbook.md in the site repository. All handbook pages.