We explore three arguments against frameworks, address them, then turn them into challenges to be overcome.
One of the great things about very robust and powerful abstractions is that they can give you tremendous leverage. The leverage can be so great that you can build something much greater than the sum of its parts. However, I worry that the web is an end to this kind of abstraction. I'd like to explore why that is and what we can do about it.
LESS and Sass (and similar solutions) have saved CSS for three reasons: separation, abstraction, and cascading. While I welcome them, CSS still has other problems which I believe can be solved.
After exploring why frameworks and why not frameworks, I dive into the design priorities I think a web framework should have.
Use the OWASP Top Ten Project to minimize security vulnerabilities in your Clojure web application.
Hiccup is a Clojure DSL for generating HTML. If you're using it, you might like these tips.
Clojure is well-suited for processing JSON, but there are some decisions you have to make to suit your application. The major decisions are actually easy, though they took me a while to figure out.
Ring, the Clojure Web library, defines three main concepts that you use to construct web applications.
Ring is great because it closely models the HTTP message format using native Clojure data structures. It strictly defines a message format that any software can use and rely on. With Ring 1.3, the specification has gotten even closer to the HTTP spec.
The Ring SPEC is the core of the Clojure web ecosystem. The standard is small and a reference is handy.