[kamal-proxy](https://github.com/basecamp/kamal-proxy) is a custom
minimal proxy designed specifically for Kamal.
It has some advantages over Traefik:
1. Imperative deployments - we tell it to switch from container A to
container B, and it waits for container B to start then switches. No
need to poll for health checks ourselves or mess around with forcing
health checks to fail.
2. Support for multiple apps - as much as possible, configuration is
supplied at runtime by the deploy command, allowing us to have
multiple apps share a proxy without conflicting config.
3. First class support for Kamal operations - rather than trying to
work out how to make Traefik do what we want, we can build features
directly into the proxy, making configuration simpler and avoiding
obscure errors