Skip to content

Production Checklist

Complete this checklist before deploying to production.

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