Medium-size Clojure sample application?

Is there a medium-sized Clojure sample application that could be used as a "best-practices" example, and a good way to see what such an application would look like in terms of code and code organization? A web application would be particularly interesting to me, but most important is that the program do something commonly useful (blog, bug-tracking, CMS, for example), and not something mathematical that I've never ever had to implement in the real world (solving the N-queens problem, simulating Life, generate Fibonacci sequences, and such usual fare of function programming languages).

Thanks!


Solution 1:

I recommend cow-blog by Brian Carper. According to the author it was written with your purpose in mind.

Solution 2:

If you browse the clojure-contrib source code you can see how libraries are implemented in clojure.

You can also checkout "ClojureScript" under the same source tree.

Allows code written in a very small subset of Clojure to be automatically translated to JavaScript.

The ClojureScript translator is a full Clojure app.

I'd also recomend checking out the Stewart Halloway's Port of Practical Common Lisp samples to Clojure if you haven't already.

Solution 3:

Take a look at Compojure. It's a web framework written in Clojure, so it allows you to write and run (on an embedded Jetty) useful web apps in Clojure, and also serves as a good example of a sizable chunk of real-world Clojure code.

It's under active development and has a helpful Google Group.

Solution 4:

Check out the ants demo that is written by the author of Clojure, Rich Hickey:

http://clojure.googlegroups.com/web/ants.clj

Here's some nice instructions for getting it setup along with an emacs development environment:

http://riddell.us/clojure

Also check out Rich's presentation that goes along with this code:

http://blip.tv/file/812787