Build and dependencies#
- [ ] Pin package versions and commit the lockfile.
- [ ] Run type checking, unit tests, and integration tests against the target database driver.
- [ ] Verify all imports resolve from the published package exports.
- [ ] Test the production build with the exact Next.js and React versions used in deployment.
- [ ] Confirm server-only modules are not pulled into client bundles.
Database#
- [ ] Use a persistent database service for production data.
- [ ] Set connection pool limits appropriate to serverless concurrency.
- [ ] Configure TLS and validate certificates where supported.
- [ ] Run migrations through a controlled release step or a deliberate single-run startup mechanism.
- [ ] Back up data and test restoration.
- [ ] Monitor connection exhaustion, slow queries, and migration failures.
Authentication and email#
- [ ] Configure session cookie security and HTTPS.
- [ ] Configure rate limiting and abuse detection.
- [ ] Set strong secrets and password hashing parameters.
- [ ] Configure a real mail transport and verified sender domain.
- [ ] Test password reset and verification delivery and expiry.
Storage#
- [ ] Choose durable storage appropriate to your runtime.
- [ ] Confirm uploads survive redeployments and instance replacement.
- [ ] Set upload limits and private-file access controls.
- [ ] Monitor failed uploads and storage quota.
Operations#
- [ ] Emit structured logs without secrets.
- [ ] Configure health checks that test the dependencies you need.
- [ ] Monitor errors, latency, database pools, and email delivery.
- [ ] Document shutdown, rollback, incident response, and credential rotation.
- [ ] Verify
SKIP_VEAP_INITand build-phase behavior are appropriate for the deployment.
Veap packages are pre-1.0; validate each upgrade in staging before deploying it to production.