ADR-001Accepted
Render statically by default
Context
The site is mostly content that changes on deploy, not per request. Server-rendering every page adds latency, cost, and runtime attack surface for no benefit.
Decision
Use Next.js static rendering for all content pages. Only /status renders per request (its whole point is live checks) and /api/contact runs as a function. External data (Medium, DEV, GitHub) is revalidated hourly.
Gains
- Pages are served from the CDN edge: fast and resilient
- Almost no server-side code is reachable by visitors
Costs
- External content can be up to an hour stale
- Nonce-based CSP isn't possible without giving up static rendering (see ADR-002)
