I haven't used Caddy but it's config format can't be worse than nginx's. Some crazy gotchas with the way nginx config works...
It's alright — the main upside for me is that it supports parameterized includes, thus letting you reuse large chunks of configuration without relying on something like ansible or bash + envsubst.