As for why use Caddy over NGINX or similar, I have some thoughts on this that I might turn into a blog post someday, but a few highlights:
- Memory safety. No Optionsbleed, Heartbleed, or similar bugs and security vulnerabilities. (Thanks to Go)
- The most mature HTTP/2 stack. Caddy uses Go's HTTP/2 implementation which has been around at least a year longer than that of other servers and has been widely deployed in many, many environments.
- Some of Caddy's individual features are more mature than that of other servers. For example, Caddy's automatic HTTPS has been around longer than any similar module in other servers. Caddy's TLS stack is also advanced, and rotates STEKs on a regular basis. Caddy has the most mature, robust OCSP implementation. Caddy's QUIC implementation is second only to Google's library. Its markdown rendering and Turing-complete templating features are second-to-none.
- Caddy's plugin ecosystem is one-of-a-kind. With plugins, Caddy can do things that other web servers can't do (without writing your own custom modules in C or whatever).
- Several of Caddy's features that are freely available are only available in paid versions of other web servers (such as h2 server push and proxy health checking).
But, I understand if these are not of value to your business; like any software, it's not for everyone. And like every software, it's not perfect. But it's pretty good.
Especially the automatic TLS functionality is very valuable and works well.