An experimental Clojure(ish) to Javascript compiler.
Clojure JavaScript
Latest commit 1f74de4 Mar 19, 2012 @zk readme
Failed to load latest commit information.
dev-resources Added minimal error reporting to compilation step. Mar 23, 2011
docs Updated marg docs. Mar 23, 2011
resources Adtl clean-up, rhino, stitch. Mar 18, 2011
src/cljs Updated readme, even more 1.3.0 compat. Mar 19, 2012
.gitignore 1.3.0 compat Mar 19, 2012
.travis.yml Updated travis yml. Mar 19, 2012 readme Mar 19, 2012
project.clj Bump to 0.3.0 Mar 19, 2012


An experimental Clojure(ish) to Javascript compiler.



  1. lein new cljs-test

  2. Add a :cljs entry to your project.clj:

    (defproject... :cljs {:source-path "src/cljs" :source-output-path "resources/public/js" :source-libs [] :test-path "test/cljs" :test-output-path "resources/testjs" :test-libs [app-test]})

  3. Verify the above paths exist.

  4. Add [cljs "0.3.0"] and [lein-cljs "0.2.1"] to your :dev-dependencies.

  5. Then lein deps and lein cljs watch. This will start the watcher, which will automatically recompile your cljs libs when cljs source files change.

  6. You now have the ability to use lisp full-stack (kind of), begin global domination.


See, specifically:

  • project.clj for info on the :cljs opts map.

  • Clone the repo and open resources/border-layout.html and resources/panel.html in your browser. This will give you an idea of how to use the compiled cljs output.

Be sure to include underscore.js in a script tag before including any compiled cljs output.


  • Integrate Google's Closure Compiler for minifying
  • Integrate js-test-driver for testing

Missing Features


Copyright (C) 2010-2011 Zachary Kim

Distributed under the Eclipse Public License, the same as Clojure.