
Health Checks: Don't Route Traffic to Broken Things
Here's the secret to zero downtime: we don't send users to your new code until it passes a health check. Configure an endpoint that says "yep, I'm good to go," and we'll ping it before routing traffic. If it fails, the old version keeps running. Some call it revolutionary.
- HTTP checks for web services (just return a 200)
- TCP checks for non-HTTP services
- Configurable intervals and timeouts
- Grace periods for slow startup
- Custom headers for auth or routing
- Smoke checks monitor for ~10s after boot
Pick Your Deployment Strategy (Or Don't, We Have Defaults)
Different apps need different deploy strategies. Rolling updates work great for most things. Canary is perfect when you're nervous. Bluegreen is fast but needs more resources. Immediate is for "I know what I'm doing" emergencies. Choose based on your risk tolerance and coffee intake.

Release Commands: Run Migrations Before You Deploy
Database migrations, cache warming, asset precompilation, whatever needs to happen before your new code goes live. Define a
release_command
and we'll run it once before deploying. If it fails, the deploy stops. No "oops forgot to migrate" moments.