Skip to content

Architecture

The significant, hard-to-reverse decisions behind the next-gen quarry.team site, captured as records in a lightweight Nygard-style format (Context / Decision / Consequences / Alternatives). The ADR process is defined in ADR 0001.

# Decision Status
0001 Record architecture decisions Accepted
0002 Frontend framework: Astro Accepted
0003 Design tokens as the single source of truth Accepted
0004 Git-based content collections Accepted
0005 Forms and the dynamic data tier on DigitalOcean Superseded by ADR 0014
0006 Hosting on the Cloudflare edge Accepted
0007 Styling: Tailwind v4 bridged to design tokens Accepted
0008 Infrastructure as code with Terraform Accepted
0009 CI/CD with GitHub Actions Accepted
0010 Privacy-first analytics Accepted
0011 SEO: URL strategy and redirects Accepted
0012 Testing strategy Accepted
0013 Pre-cutover staging environment and per-PR preview deployments Accepted
0014 Forms and the data tier on Cloudflare (D1 + Worker) Accepted
0015 A strict, hash-pinned Content-Security-Policy Accepted
0016 A /policies section for governance documents Accepted
0017 Stakeholder grievance intake: on-demand routes, quarantine over rejection, D1 with a Notion mirror Accepted
0018 Dependency update policy: grouped, cooled-down Dependabot with tiered auto-merge and post-deploy rollback Accepted; §1 and the platform tier superseded by ADR 0020; amended 2026-10-25 (Terraform PRs must plan clean, see Amendment)
0019 A per-request CSP nonce for the script Cloudflare injects at the edge Accepted
0020 Platform updates move as one reviewed unit: explicit group exclusions, an uncooled Cloudflare toolchain Accepted
0021 Site search on the Worker, progressively enhanced Accepted