Skip to content

Production Checklist

Before launching your application to real users, go through this checklist to make sure everything is properly configured.

Application

  • Standalone output (Next.js) — add output: 'standalone' to next.config.js for faster deploys and lower memory usage
  • Environment variables — all required variables are set in the Stackpad dashboard (not just locally in .env)
  • NODE_ENV=production — set at the project level
  • Error handling — your app handles errors gracefully and doesn’t expose stack traces
  • Health check — your app responds to HTTP requests on the configured port within a few seconds of starting

Database

  • Migrations — database migrations run automatically (during build or on startup)
  • Connection pooling — use a connection pool or PgBouncer for high-traffic apps
  • Indexes — critical queries have appropriate database indexes
  • Backups verified — check the Backups tab to confirm backups are running
  • Point-in-time recovery (Pro+) — enable PITR for PostgreSQL to restore to any second
  • Performance tuning — review auto-tuned parameters in service Settings, override if needed

Custom domain

  • Domain added — add your custom domain in the Domains page
  • Ownership verified — TXT record (_stackpad-verify.yourdomain.com) is in place
  • DNS configured — CNAME (subdomains) or A record (root domain) pointing to Stackpad
  • DNS verified — Stackpad shows a green checkmark on the domain
  • HTTPS working — certificate is provisioned (happens automatically after DNS verification)
  • Redirect configuredwww → root domain (or vice versa) using a redirect domain

Security

  • Secrets are not in code — API keys, passwords, and tokens are in environment variables, not committed to git
  • Database not public — public access is disabled on production databases (Settings → Public access off)
  • HTTPS only — Stackpad handles this automatically, but verify your app doesn’t hardcode http:// URLs
  • 2FA enabled — enable two-factor authentication for all team members
  • Admin tools protected — mark admin panels and dashboards as protected services
  • Roles reviewed — verify team members have the correct RBAC roles

Monitoring

  • Logs working — check the Logs tab to verify your app is producing logs
  • Error tracking — consider adding Sentry or a similar tool for error alerting
  • Uptime monitoring — consider setting up an external uptime check (or deploy the Uptime Kuma template)

Team

  • Team members invited — all developers have access with appropriate roles
  • GitHub connected — the deploying user’s GitHub is connected with access to the repository

Scaling & reliability

  • Replicas configured (Pro+) — enable horizontal scaling for critical services
  • Geo-spread — distribute replicas across EU datacenters for geographic redundancy
  • Scale-to-zero — configure for non-production environments to save resources
  • Dedicated infrastructure — consider dedicated servers for production workloads

Performance

  • Build succeeds quickly — builds should complete well within the 10-minute timeout
  • Startup is fast — your app should start responding within 30 seconds (90-second health check timeout)
  • Memory is within limits — check your plan’s memory allocation matches your app’s needs

What’s next?