# The Website Specification — checklist (6 items)

## Resilience
- [ ] **Custom error pages (404, 500)** _(required)_ — Custom error pages must return the correct HTTP status code, explain what went wrong in plain language, and offer the user a way forward without leaking implementation details.
      https://specification.website/spec/resilience/error-pages/
- [ ] **Maintenance pages and 503** _(recommended)_ — When the site is intentionally offline, return HTTP 503 with a Retry-After header and a page that tells users what is happening and when to come back.
      https://specification.website/spec/resilience/maintenance-pages/
- [ ] **Graceful degradation when JavaScript fails** _(recommended)_ — Core content and primary navigation should keep working when JavaScript fails to load or throws — treat client-side scripts as an enhancement, not the delivery mechanism.
      https://specification.website/spec/resilience/graceful-degradation/
- [ ] **Offline support and service workers** _(optional)_ — A service worker can serve a cached offline fallback page when the network fails, keeping the site usable on flaky connections and turning hard failures into graceful ones.
      https://specification.website/spec/resilience/offline-support/
- [ ] **Web app manifest** _(recommended)_ — A web app manifest is a small JSON file that tells browsers how the site should appear when installed — its name, icons, start URL, theme colour, and display mode.
      https://specification.website/spec/resilience/pwa-manifest/
- [ ] **Monitoring and uptime** _(recommended)_ — Monitor the site from outside your own infrastructure, combine synthetic checks with real user data, and run a status page on a separate host so it stays up when the site does not.
      https://specification.website/spec/resilience/monitoring-uptime/
