Production Checklist
Complete this checklist before deploying to production.
Environment
Section titled “Environment”-
NODE_ENV=productionis set - All secrets are secure (not committed to git)
- Environment variables are configured on host
Security
Section titled “Security”- JWT secrets are 32+ characters
- Database credentials are secure
- CORS origins are restricted (not
*) - Rate limiting is enabled on auth endpoints
- HTTPS is enforced
Database
Section titled “Database”- Production database URL is configured
- Connection pooling is appropriate
- Migrations are run:
pnpm prisma migrate deploy - Backups are configured
Performance
Section titled “Performance”- Build is optimized:
pnpm build - Unnecessary dev dependencies removed
- Logging level is appropriate
Monitoring
Section titled “Monitoring”- Health check endpoint works:
/api/health - Error tracking is configured (Sentry, etc.)
- Logging aggregation is set up
Graceful Shutdown
Section titled “Graceful Shutdown”const shutdown = async () => { await prisma.$disconnect(); process.exit(0);};
process.on('SIGTERM', shutdown);process.on('SIGINT', shutdown);Health Endpoint
Section titled “Health Endpoint”health: procedure() .output(z.object({ status: z.string(), timestamp: z.string() })) .query(() => ({ status: 'ok', timestamp: new Date().toISOString(), })),