Cabot Trail Relay 2026 · Black Lungs · Historical archive
2026 admin controls
Use Publish lineup to site below to push to D1. Generate lineup JSON is the fallback when D1 is unbound.
Leg assignments
D1 live publish (production). Static JSON remains the offline fallback.
Published revision history
Unassigned runners
| Leg | Runner | Notes |
|---|---|---|
| Leg 1 | ||
| Leg 2 | ||
| Leg 3 | ||
| Leg 4 | ||
| Leg 5 | ||
| Leg 6 | ||
| Leg 7 | ||
| Leg 8 | ||
| Leg 9 | ||
| Leg 10 | ||
| Leg 11 | ||
| Leg 12 | ||
| Leg 13 | ||
| Leg 14 | ||
| Leg 15 | ||
| Leg 16 | ||
| Leg 17 |
Team photos
Uploader email is visible to admin only.
Filter & sort
No photos yet. Uploads will appear here during the race.
Trip expenses
Ledger stored in SQLite on the API server (data/team_expenses.sqlite3). No receipts in this phase.
When enabled, the team trip expenses page shows who should pay whom. Turning off is allowed without confirmation.
Add expense
Recorded expenses
| Date | Description | Category | Amount | Paid by | Split count | Per-person share | Notes |
|---|
Travel + emergency info
Full private rows load from the team API (D1 in production). Public pages never include waiver URLs, tokens, or emergency contacts.
Crew Notes (course map)
Public map loads visible notes from the API when D1 is configured; otherwise it uses the static seed JSON. Requires Cloudflare Access (same as other admin APIs).
Add note
Existing notes
| Leg / place | Category | Title | Note | Lat | Lon | Visible | Updated | |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||