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'tonext.config.jsfor 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, not a new connection per request
- Indexes — critical queries have appropriate database indexes
- Backups verified — check the Backups tab to confirm backups are running
Custom domain
- Domain added — add your custom domain in the Domains page
- 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 configured —
www→ 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
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
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?
- Custom domains — set up your domain
- Logging — monitor your application
- Troubleshooting — when things go wrong