What’s in it
The “why” behind the conventions that would otherwise look arbitrary. Among them:
- Why this catalog is Astro + Pagefind while every other app here is Vite + React — and where the boundary sits, so the exception doesn’t quietly become the rule.
- Theming through CSS custom properties and a
data-themeattribute on<html>— with the rule that only chrome adapts, while data colours (person swatches, status palettes, PR tag colours) carry meaning and must never invert. - Adding a person via a prefilled PR, not a backend — the pattern now reused by the leave dashboard, DSE Hub and the algorithm catalog.
- “Pattern B”: one Netlify site per dashboard, and deliberately no root
netlify.toml— because a root config’sbasekey would apply to every site connected to the repo and hijack the others.
Read it when
- You are about to add a root-level config file, or a second dark-mode mechanism, or a backend.
- A convention looks wrong and you want to know what it was protecting against before you change it.
This is the first doc to read before proposing an architectural change in this repo.