I use caddy mostly as a reverse proxy in front of an app. It's just one line in the caddy file:
sub.domain.com {
# transparent proxy + websocket support + letsencrypt TLS
reverse_proxy 127.0.0.1:2345
}
It's a fresh breath of air to have server with sensible defaults after dealing with apache and nginx (haproxy isn't much better in that regard).