I think it’s a mistake to omit Brotli on the fly compression. You should do it. Caddy isn’t even on my list of candidates because it is missing this feature.
Brotli gets the reputation for being a slow algorithm because everyone defaults to using it at level 11, which is very aggressive and takes forever. But that’s the point of level 11, take a long time and get something as small as possible.
Very few people seem to understand full curve available. Even a middle of the road level that most use with gzip, like 4-6, that has relatively reasonable execution times in gzip is pretty slow with brotli. Don’t use these levels for on the fly, the scale is very very different.
Default to and use level 0. It has reasonable compression and excellent speed. It’s generally both faster and better than gzip level 1 in my experience.