Antract: Zero-Downtime Deployments Without the Complexity

I needed zero-downtime deployments for a low-traffic service. The requirements were simple: no dropped connections during a restart, minimal infrastructure.

I tried caddy, haproxy, and traefik as the waiting layer. All were overkill โ€” too much config, too many moving parts for a low-traffic service.

Then I found 37signals' intermission project. Good concept: intercept traffic, show a maintenance page, drain connections, bring the app back up. But it was dated.

I forked and modernized it into Antract โ€” same idea, updated codebase.

The flow:

  1. Antract sits in front of your app
  2. On deploy: signal Antract to enter intermission mode
  3. In-flight requests finish; new requests get a 503 or wait
  4. Restart/redeploy your app
  5. Signal Antract to resume โ€” traffic flows again

No load balancer. No Kubernetes. No cloud magic. Just a small proxy you control.

Source: GitHub