@nicsnet: on bidi’s github page there is a table with some other libraries that you might want to check https://github.com/juxt/bidi regarding your question, I personally would go with compojure. I personally like the way you can compose middlewares. and there are a lot of them that you can use https://github.com/ring-clojure/ring/wiki/Third-Party-Libraries but writing your own middleware mainly for handling errors is pretty straight forward, and the documentation is good https://github.com/ring-clojure/ring/wiki
I was just checking, our error handling middleware has around 60 lines of code (of course multiple functions)