Noir is a micro-framework that allows you to rapidly develop websites in Clojure.
And it couldn't be any simpler.
Now let's make it do something. Noir uses Hiccup to generate HTML. Hiccup represents html elements as vectors where the first keyword is the name of the tag and everything else is the content. With Noir you can define functions that return HTML by using the (defpartial) macro. The code to the right, for example, shows how you could generate an unordered list of todos.
We've created some html functions, but we need to define some pages that use them. Noir is built on top of Ring and Compojure, which take care of handling HTTP requests and responses. The (defpage) macro extends these with a simple way to define what happens when someone accesses a given url. You just pass it a "route" and supply a destructuring form for the parameters of the request (basically, the GET or POST values). The rest is then evaluated as the content of the response.
This shows you the basics of Noir, but it provides much more than what you see here. Eveything you need to build production ready websites is included: from session and cookie handling to validation and custom status pages. Take a look at the tutorials and the API documentation...
and then go build some websites!