5.8 KiB
5.8 KiB
Pre-Deployment Checklist
Use this checklist before deploying to production.
✅ Code Quality
- All TypeScript errors resolved
- Build completes successfully (
npm run build) - Type checking passes (
npm run type-check) - ESLint warnings addressed (
npm run lint) - No console.log statements in production code
- All TODO comments resolved or documented
✅ Environment Setup
.env.productionfile createdVITE_API_URLset to production API endpoint- Backend API is accessible from production domain
- CORS configured on backend for production domain
- All required environment variables documented
✅ Security
- HTTPS/SSL certificate obtained and configured
- Security headers configured (see nginx.conf or hosting config)
- API endpoints secured with authentication
- Sensitive data not exposed in client code
- Rate limiting configured on backend
- Error messages don't expose sensitive information
- Dependencies audited (
npm audit)
✅ Testing
- Application tested in development mode
- Production build tested locally (
npm run preview) - Login/logout flow tested
- All main routes tested
- API calls tested and working
- Error handling tested (network errors, 401, 403, 404, 500)
- Mobile responsiveness verified
- Cross-browser testing completed:
- Chrome
- Firefox
- Safari
- Edge
✅ Performance
- Bundle size reviewed (should be ~970 KB uncompressed)
- Lighthouse performance score checked (aim for >80)
- Images optimized (if any)
- Code splitting configured (already done in vite.config.ts)
- Compression enabled on server (gzip/brotli)
✅ Monitoring & Analytics
- Error tracking service configured (Sentry, LogRocket, etc.)
- Analytics configured (Google Analytics, Plausible, etc.)
- Uptime monitoring set up
- Alert notifications configured
- Logging strategy defined
✅ Documentation
- README.md updated with project info
- Environment variables documented
- Deployment instructions clear
- API documentation available
- Team trained on deployment process
✅ Deployment Configuration
Choose your deployment method and complete the relevant section:
For Vercel
- Vercel account created
- Project connected to repository
- Environment variables set in Vercel dashboard
- Custom domain configured (if applicable)
- Build command:
npm run build:prod - Output directory:
dist
For Netlify
- Netlify account created
- Project connected to repository
- Environment variables set in Netlify dashboard
- Custom domain configured (if applicable)
- Build command:
npm run build:prod - Publish directory:
dist
For Docker
- Docker image built successfully
- Container tested locally
- Image pushed to container registry
- Deployment platform configured (ECS, Cloud Run, etc.)
- Environment variables configured in platform
- Health checks configured
For VPS/Traditional Server
- Server provisioned and accessible
- Node.js 18+ installed
- Nginx installed and configured
- SSL certificate installed
- Firewall configured
- Automatic deployment script created
✅ Post-Deployment
After deploying, verify:
- Application loads at production URL
- HTTPS working (no mixed content warnings)
- All routes accessible (test deep links)
- Login/authentication working
- API calls successful
- No console errors
- Error tracking receiving data
- Analytics tracking pageviews
- Performance acceptable (run Lighthouse)
✅ Backup & Recovery
- Previous version tagged in git
- Rollback procedure documented
- Database backup completed (if applicable)
- Configuration backed up
✅ Communication
- Stakeholders notified of deployment
- Maintenance window communicated (if applicable)
- Support team briefed
- Documentation shared with team
🚨 Emergency Contacts
Document your emergency contacts:
- Backend Team: _________________
- DevOps/Infrastructure: _________________
- Security Team: _________________
- On-Call Engineer: _________________
📋 Deployment Steps
-
Pre-deployment
- Complete this checklist
- Create git tag:
git tag v1.0.0 - Push tag:
git push origin v1.0.0
-
Deployment
- Deploy to staging first (if available)
- Test on staging
- Deploy to production
- Monitor for 15-30 minutes
-
Post-deployment
- Verify application working
- Check error logs
- Monitor performance
- Notify stakeholders
-
If issues occur
- Check error tracking service
- Review server logs
- Rollback if necessary
- Document issue for post-mortem
📝 Deployment Log
Keep a record of deployments:
| Date | Version | Deployed By | Status | Notes |
|---|---|---|---|---|
| YYYY-MM-DD | v1.0.0 | Name | ✅/❌ | Initial production release |
🎯 Success Criteria
Deployment is successful when:
- ✅ Application loads without errors
- ✅ All critical features working
- ✅ No increase in error rate
- ✅ Performance within acceptable range
- ✅ No security vulnerabilities detected
- ✅ Monitoring and alerts active
📞 Support
If you encounter issues:
- Check
DEPLOYMENT.mdtroubleshooting section - Review error logs in monitoring service
- Check browser console for client-side errors
- Verify API connectivity
- Contact backend team if API issues
- Rollback if critical issues persist
Remember: It's better to delay deployment than to deploy with known issues. Take your time and verify each step.
Good luck with your deployment! 🚀