Use the checklist before the first production deployment and before material runtime or infrastructure changes. Resolve each item with evidence such as a command result, screenshot, runbook, alert test, or restore test rather than checking it from memory.
Build and runtime
- The lockfile is committed and installs reproducibly.
next buildsucceeds with the intended production configuration.- The production server starts and critical routes work outside development mode.
- Build-time
NEXT_PUBLIC_values and runtime-only secrets are correctly separated. - Native dependencies and output tracing are tested on the target operating system.
Security and network
- Secrets are absent from source control and client bundles.
- Authentication and authorization are enforced inside every sensitive server action and route.
- TLS, reverse-proxy limits, firewall rules, and non-root process permissions are configured.
- Security headers and dependency vulnerability handling have an owner.
Release and recovery
- Releases are immutable or versioned and the deployed commit is identifiable.
- Health checks cover a meaningful dependency path without exposing secrets.
- The previous release can be restored without rebuilding it.
- Backups exist for stateful data and a restore has been tested.
- Graceful shutdown allows in-flight requests and pending
after()work to finish.
Observability and capacity
- Application and proxy logs are searchable with timestamps and release context.
- Alerts cover sustained errors, failed health checks, resource exhaustion, and certificate expiry.
- Representative load tests establish memory, CPU, latency, and dependency limits.
- A named owner and response path exist for production incidents.