Files
mandaloreandClaude Opus 5.5 95a54e9ec2 Add per-site READMEs describing what each site serves
Covers pages, data sources, config knobs, files and deploy target for
40k-rankings, aos-rankings, events, kingmaker and scouting. Also lists
events in the root README layout and points to the per-site docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-22 16:46:40 -05:00

76 lines
2.9 KiB
Markdown

# events.gateway-gamers.net
A single feed of upcoming Warhammer events from the Best Coast Pairings (BCP)
circuits Gateway Gamers follows, soonest first.
## What it serves
A single page (`index.html`) listing every upcoming event across the configured
circuits. Each event card shows:
- event name and venue, plus distance from St. Louis ("Local" if under 30 miles)
- date range, shown in the event's own timezone
- badges for:
- format: Singles or Team Event
- scope: RTT or GT
- every followed circuit the event belongs to
- game system
- checked-in count against tickets
Each card links to the event on bestcoastpairings.com.
Filter buttons at the top toggle **Format**, **Scope** and **Circuit**. Within
a group they combine with OR, and across groups with AND.
Some of the rules behind the badges and filters:
- **Scope** is worked out from duration: an event that starts and ends on the
same local calendar day is an RTT, anything longer is a GT. BCP has no
reliable field for this. Team events get no scope badge.
- **Duplicate events** are merged. An event that belongs to several followed
circuits appears once, with a badge for each circuit, including circuits
listed only in the event's own `leagues` data.
- **Past events** are skipped. Paging stops as soon as it reaches events that
have already ended, so a circuit's full history is never downloaded.
## Data sources
BCP `events?leagueId=…` for each configured circuit, at
`https://newprod-api.bestcoastpairings.com/v1`, without authentication. All
requests come from the viewer's browser; nothing is stored on the server.
## Configuration
Edit `CONFIG.circuits` at the top of `src/main.js`. Each entry takes:
- `id`: the circuit's leagueId, from its BCP calendar URL
(`bestcoastpairings.com/circuit/<id>/calendar`)
- `name`: the label used on the filter button and badges
- `near` (optional): `{ lat, lon, miles }` to include only events within that
radius. Events without coordinates are left out.
The circuit filter buttons are generated from this list. Currently followed:
- Away Games 2025/26 ITC Season
- National Tabletop League (NTL) 8-Player Circuit
- TEO 2026 Circuit
- 2026 Lord Marshal Conference
- 2027 Lord Marshal Conference
- Warhammer Global Rankings 2026, limited to events within 250 miles of
St. Louis
## Files
- `index.html`, `src/main.js`, `src/style.css`: the page
- `nav.html`: this site's header nav entries (see the root README)
- `events.gateway-gamers.net.conf`: reference nginx config for the live server
block. It sets a Content-Security-Policy, so calling a new external API from
the page means adding that host to `connect-src` there too.
## Deploy
`.gitea/workflows/deploy-events.yml` builds the site and rsyncs `dist/` to
`/var/www/domains/gateway-gamers.net/events/` on every push to `main` that
touches `sites/events/` or `shared/`. See the root README for local dev
commands and the shared header, footer and images.