Let Me Run — Preparing Boys for the Long Run
LMR OS
Staff & board sign-in. Enter your Let Me Run email and we'll send you a 6-digit code.
Trouble signing in? Contact the operations team.
🛠️
Internal · Continuity

Operations Continuity Plan

The “if the Director of Operations is suddenly unavailable” runbook — what the LMR digital system is, what has to keep running, who to call, and where everything lives. Written so someone who is not the person who built it can keep the lights on.

Read this first. Most of LMR’s digital operation was built and is run by one person (JB). This page exists so that if he’s out — a week, or for good — the org can keep the sites up, keep the data flowing, and know exactly who to lean on. It points to where things live and who holds the keys; it deliberately contains no passwords or secret keys (those live in the vault noted below).
Progress — July 14, 2026. Real continuity is now in place on two of three fronts: (1) Files — the toolchain’s code & docs are copied to an organization-owned Google Shared Drive, “LMR Operations — Toolchain & Docs,” with three Managers (JB, Lane Wallace, Michelle Martin), so they survive any one account being lost. (2) Admin control — both planes are redundant: Google Workspace (the Shared Drive) and Microsoft 365 (email & identity) each list JB, Lane, Michelle, and the shared info@letmerun.org as admins. (3) The one open item is the secrets vault — the keys & logins still live on JB’s laptop; a shared password manager (“LMR Ops Secrets”) is being set up (see the last section). Until it exists, a successor can reach the files and both admin consoles but would still recover vendor passwords the hard way (resets via the Microsoft 365 mailboxes).
Break glass If Jason is unavailable — start here (Lane & Michelle)

Work these in order. Nothing here is urgent in the first hour — the public website and registration keep running on their own, and the staff tools keep showing the last good data. Breathe first, then go top to bottom.

  1. You already have the access. You’re both Google Workspace Super Admins, Microsoft 365 Global Admins, and Managers on the “LMR Operations — Toolchain & Docs” Shared Drive. Nothing to request or unlock.
  2. Open the Shared Drive. Google Drive → Shared drives“LMR Operations — Toolchain & Docs.” Everything lives there — the code, the docs, and this plan. Start by reading LMR_Master_Context.md (the deep map) and this page.
  3. Get the keys. Open the “LMR Ops Secrets” vault (Bitwarden) — every password and key is there, shared with you both.
    Until the vault is set up: the keys are on Jason’s laptop. You can still recover most vendor logins by resetting their passwords through the letmerun.org mailboxes in Microsoft 365 (which you both admin) — that’s why the M365 access matters.
  4. Keep the sites running. dashboard.letmerun.org and coaches.letmerun.org run themselves off the database. If one won’t load, roll it back: Netlify → the site → Deploys → Publish the last good deploy.
  5. The daily numbers can wait. The daily refresh (fresh registration counts) is a manual routine on Jason’s machine — Section 2 below. If it doesn’t run, nothing breaks and nothing is lost; the sites just show yesterday’s numbers. Don’t stress it in week one.
  6. If letmerun.org (the public website) breaks — that’s WordPress on WiT’s hosting. Call WiT (Section 3). You can’t fix that hosting yourselves, and that’s expected — it’s their job.
  7. Bring in a technical hand. For anything that means running or changing the code, hire or borrow a technical person and hand them three things: the Shared Drive, the vault, and this plan + Master Context. That is genuinely everything they need to keep it running or rebuild it.
  8. Then read the rest of this page — the full map of every system, who to call, and how each piece recovers.

1 · The 30-second picture

LMR’s digital system is one data source feeding three tools. Families register in Pinwheel (pinwheel.us). Everything else is a downstream view of that:

                         PINWHEEL  (system of record — families register here)
                                  |
                 +----------------+------------------+
                 |                                   |
        nightly auto-sync                    manual Excel export  --> JB's laptop
                 |                                   |
                 v                                   v   (local Python turns exports into data)
       WordPress (letmerun.org)          +-----------+-------------------+
                 |                        |           |                   |
                 v                        v           v                   v
      1) PUBLIC TEAMS LIST      2) STAFF DASHBOARD    3) COACH HUB
         letmerun.org/regions      dashboard.letmerun.org   coaches.letmerun.org
         (public)                  (staff login)            (coach login)

Tools 2 and 3 read a shared database (Supabase) and are refreshed by a manual daily routine JB runs. Tool 1 (the public teams list) refreshes itself live from Pinwheel — see the Resources card “How the Public Teams List Gets Its Data.”

2 · The one job that must not stop: the Daily Refresh

Once a day, the staff Dashboard and Coach Hub need fresh registration and roster numbers. Today this is a manual routine on JB’s Windows laptop, not an automatic server job:

  1. Download the current Pinwheel exports (Seasonal Participant Details + Assigned Volunteers) to the laptop’s Downloads folder.
  2. Double-click LMR_Daily_Refresh.bat in C:\Users\jmbai\LMR. It runs three scripts that read the exports and push the data into Supabase.
  3. Confirm each report says it reached Supabase, then spot-check both live sites.

If the refresh is skipped, nothing breaks and no data is lost — the sites simply show yesterday’s numbers until it runs again. The public teams list is unaffected (it’s live from Pinwheel). So: a missed day is an inconvenience, not an emergency.

Status (Jul 14): Lane and Michelle can now reach the toolchain (they’re Managers on the Shared Drive) and administer both admin planes. Still open: no single person is yet trained to run the refresh, and the secrets it needs are still on JB’s laptop (vault in progress). So the nearest backup today is Lane or Michelle working with a technical helper, following the daily-refresh runbook — closing the vault is what makes it fully real.

3 · The systems & who holds the keys

Every moving part, what it does, and where access lives. Fill in the blanks only you can answer.

SystemWhat it doesAccess / where the login lives
Pinwheel (pinwheel.us)Registration — the system of record for every boy, coach, team, and payment.LMR Pinwheel admin account. key person
WordPress + Divi — letmerun.orgThe public website, incl. the regional teams lists.WP admin login. Built by WiT Group, maintained by JB.
WP Engine (hosting)Hosts WordPress; holds server-level backups.Only WiT has portal access — LMR does not. single point
NetlifyHosts the Dashboard & Coach Hub + their serverless functions. Deploys happen here.Netlify account. Sites: super-melba-887aa5 (Dashboard), rainbow-trifle-740737 (Coach Hub).
SupabaseThe secure database behind both staff tools — where PII (emails/phones) and OS data live.Supabase account (project yvrxssdyenuqkugwzxgo).
ResendSends the 6-digit sign-in code emails (from info@letmerun.org).Resend account.
Raceplanner / Pinwheel APILive team data for the public teams list.Token stored server-side (Netlify env var) + in the WP sync plugin. Reissued by WiT.
Domain / DNSPoints letmerun.org + the subdomains at the right hosts.Domain registrar account.
Google WorkspaceHosts the Shared Drive “LMR Operations — Toolchain & Docs” (the code + docs) and Drive admin.Super admins: JB, Lane, Michelle, info@. Drive Managers: JB, Lane, Michelle. redundant
Microsoft 365Email & identity (letmerun.org mailboxes) — the plane that recovers vendor logins via password-reset emails.Global admins: JB, Lane, Michelle, info@. redundant
Jason: still to fill in — (a) WiT Group’s contact name, email, and phone (the one outside party who can touch the website + hosting); and (b) which account/email each vendor above is registered under — ideally consolidate them onto info@letmerun.org so an admin can always recover them. The passwords themselves go in the LMR Ops Secrets vault (last section), never in this document.

4 · Single points of failure (the honest list)

These are the places where “one person or one machine” is the whole story. Reducing them is the point of the Google Shared Drive move and the fill-ins above.

  • The secrets still live on one laptop. The code & docs are now mirrored to the org-owned Shared Drive (three Managers), so the toolchain files survive. What’s still laptop-only is the secrets — the Supabase service key in lmr_config.py plus the vendor tokens and logins. Until the shared vault exists, losing the laptop means recovering those keys the hard way (vendor resets through the Microsoft 365 mailboxes). The vault is the last step.
  • Only WiT can reach WP Engine. LMR cannot pull its own website/server backups; if the site goes down, the path is call WiT, not self-serve. Recommended fix (small lift, not a project): have WiT add LMR as a user on the WP Engine account so LMR isn’t locked out of its own hosting.
  • Deploys are manual. Updating the Dashboard or Coach Hub means dragging a folder onto Netlify by hand. No CI, no automation — whoever does it needs the Netlify login and the folder.
  • The knowledge is written down in a few key files (below), but they assume a fair bit of context. A successor should read them with a technical helper the first time.

5 · If something breaks — quick triage

SymptomFirst move
letmerun.org is down or brokenContact WiT Group — it’s their WordPress/WP Engine stack. LMR can’t fix hosting directly.
Dashboard or Coach Hub won’t loadCheck Netlify (is the site up? recent bad deploy? roll back to the prior deploy in Netlify’s Deploys tab).
Nobody can sign in (no code email)Check Resend (is it sending?) and Supabase (is the project up?). The code emails come from info@letmerun.org via Resend.
Sites show stale numbersThe daily refresh hasn’t run. Not urgent — run it when possible (Section 2).
Public teams list looks wrongDecide if it’s a Pinwheel field (fix in Pinwheel) or an LMR field (fix in the Dashboard). See the “How the Teams List Gets Its Data” card.

6 · Where everything is written down

The deep knowledge lives in a small set of files in C:\Users\jmbai\LMR (and, once set up, on the Google Shared Drive):

  • LMR_Master_Context.md — the single source of truth: architecture, infrastructure, brand, locked decisions. Start here.
  • CLAUDE.md — the working “glance” state and conventions.
  • LMR_Pipeline.md — the backlog / future work.
  • LMR_Recovery_Runbook.md & the various *_Deploy_Runbook.md — step-by-step recovery and deploy procedures.
  • The daily refresh procedure — captured as the daily-pw-report routine.
These files are the org’s memory. The most valuable single action for continuity is making sure they are backed up off the laptop and readable by more than one persondone as of July 14, 2026: they now live in the org-owned Shared Drive with three Managers. The secrets vault below is the one remaining piece.

7 · The one open item: the secrets vault in progress

This is the last leg. The Shared Drive holds the code; the vault holds the keys that make it run. Plan: one shared password-manager vault named “LMR Ops Secrets” (Bitwarden pricing requested Jul 14, 2026), shared with JB, Lane, and Michelle, each with their own login + two-factor. When it exists, everything below moves off JB’s laptop into it:

  • Supabase — project URL, the service key, and the anon key.
  • Netlify — account login + a personal access token.
  • Pinwheel / Raceplanner — the Pinwheel admin login + the API token.
  • WordPress / WP Engine — the WP admin login, and (once obtained) LMR’s own WP Engine access; the WiT contact until then.
  • Resend — account login + API key (sends the sign-in codes).
  • Domain registrar — login for letmerun.org DNS.
  • Break-glass admin — the info@letmerun.org password, and the Google Workspace + Microsoft 365 admin recovery details.
  • A secure note with the full contents of lmr_config.py, so the file can be recreated on a new machine from scratch.
Once the vault is done, this plan is complete — files (Shared Drive), control (two redundant admin planes), and keys (vault) will each have more than one living person who can reach them.

Internal continuity plan — for LMR leadership & board. Two “Jason: fill in” items remain (WiT contact + vendor account emails), and the secrets vault is being set up. Revisit whenever a vendor, account owner, or the backup person changes. Last structural update: July 14, 2026.