Clojure Libs/Frameworks/Tooling for rapid web development

It could. But Clojure has an ethos of encouraging only accretive, fixative changes, rather than breakage, so picking the most recent version of any given library should work (and indeed that is the approach taken by the CLI / deps.edn tools).

More flexible? Definitely. Better? That’s subjective but I think so. Quicker? No, not necessarily. But there are any number of web app templates out there to get you started with whatever combination of libraries you prefer – and most of the work in “interesting” web apps is in the domain/business logic/processing. I think framework-based code is a lot more complex, inherently, than Clojure’s composition-of-libraries approach.

Re: frameworks vs libraries, in terms of learning – Clojure libraries tend to be small and focused so learning each is often less work than learning that same feature in a framework.

Some background: prior to Clojure, I worked in a lot of different languages that were pretty much all framework-based in their approach, dating back as far as Motif, and dealing with several proprietary frameworks (such as BroadVision – which started off in C++, then migrated to Java, and I think on to JavaScript?), as well as various C++ and Java frameworks. I’ve also designed and built open source frameworks over the decades. I can comfortably assert they are all much more complicated and harder to understand than any Clojure web app I’ve built with “just” libraries over the last eight or nine years.

When I first came to Clojure, because of that experience, I also looked for frameworks to “help” me. In fact, I even ported one of my own MVC frameworks from another language into Clojure, on top of Ring, Selmer, and Component. We even used it at work for a short while. The more I used it, the more I tweaked it to be more idiomatic and more “Clojure-y” and it didn’t take long before I could see that the framework was buying me so little value for all the code and conventions it was forcing upon my Clojure code. So I sunsetted the project. If you’re curious, I explained why here fw1-clj/README.md at master · framework-one/fw1-clj · GitHub