Shaun LeBron edited this page Jun 12, 2016 · 146 revisions
Clone this wiki locally

ClojureScript is a dialect of Clojure that targets JavaScript as a deployment platform.

Read These First


Online Clojurescript REPLs

Project Templates


  • mies Minimal ClojureScript project template
  • figwheel-template A Leinigen template for live coding with figwheel (includes Reagent and Om varients)
  • chestnut Application template for ClojureScript/Om with live reloading
  • cljs-start A lein template for creating ClojureScript lib with batteries included
  • mala A lein template for building UIs in 100% Clojurescript, with Om, Garden, and curated libs
  • reagent-template A Leiningen template for projects using Reagent
  • re-frame-template Leiningen template for reagent web app based on the re-frame pattern. Includes figwheel and optionally re-com and secretary
  • descjop A Leiningen template for Web based desktop application with Electron(atom-shell) and others
  • electron-template A Leiningen template for creating Electron based ClojureScript projects with support for Reagent


  • tenzing Clojurescript application template using Boot
  • jamal Basic ClojureScript frontend repo with testing using Boot
  • saapas A complete frontend and backend example using Boot

Getting Help


Mailing Lists


Tips & Tricks




Leiningen plugins

  • lein-cljsbuild: Allows you to easily build ClojureScript projects with multiple targets
  • lein-npm: For Node.js based projects, allows you to work with NPM dependencies.
  • figwheel Live coding support
  • cljsasset CSS asset support


Learning Tools

  • Planck Stand-alone OS X ClojureScript REPL
  • Replete ClojureScript REPL iOS app
  • Replify Standalone Clojurescript REPL and minimalist build tool
  • Mancy Electron based NodeJS REPL with ClojureScript Support + (Data Visualisation, Transpiled JS View & more…)

Compatible Clojure Contrib libraries


Dom Manipulation

React Wrappers

HTML Templating

  • sablono, Hiccup style HTML generation for React
  • sablono-tools, Enlive-style selector-based templating and transformations for Sablono
  • kioo, Enlive style HTML generation
  • hipo, Hiccup style templating
  • enfocus, Enlive templating for ClojureScript
  • hickory parses HTML into Hiccup vectors

CSS Generation

  • garden, CSS generation
  • mesh, Responsive Grid & Typography library built on Garden


  • apogee SVG charting
  • gamma GLSL DSL
  • quil, Processing for Clojure & ClojureScript
  • thi.ng/geom Geometry primitives, mesh operations, SVG & WebGL rendering (CLJX)
  • thi.ng/color Color space conversion & manipulation (CLJX)
  • thi.ng/tweeny Interpolation of arbitrary nested value maps (CLJX)

Client-side Routing


  • klozzer, Http Caching and File System Api with core.async
  • s3-cljs, aws s3 sdk wrapper
  • sente, core.async + websockets
  • cljs-ajax simple Ajax client for ClojureScript
  • cljs-http a ClojureScript HTTP library
  • happy a Clojure(Script) HTTP async client library
  • clj-browserchannel Real-time, bi-directional communication between ClojureScript and Clojure
  • chord, core.async + WebSockets
  • matchbox, Firebase client for Clojure(Script)

Data formats


  • datascript, Datomic-like in-memory database
  • konserve, KV store protocol
  • hodgepodge A idiomatic interface to local and session storage
  • thi.ng/trio Non-RDF triplestores & SPARQL like query engine (CLJX)



  • reagi An FRP library for Clojure and ClojureScript
  • zelkova Elm-style FRP for Clojure and ClojureScript
  • re-frame A Reagent Framework For Writing SPAs, in Clojurescript.


  • purnam is a clojurescript library designed to provide better clojurescript/javascript interop, testing and documentation tools to the programmer.
  • cuerdas, string manipulation
  • schema, Validation & contracts
  • bardo, transitions
  • lucuma, WebComponents
  • differ, data structure diffing
  • component-cljs, port of Stuart Sierra's Component library
  • cats, Monads
  • lively, Client-side live programming support
  • patterny, Extract imagine patterns
  • phalanges, Keyboard events
  • keybind, Key bindings
  • cljs-time, Date/time lib (almost) consistent API with clj-time
  • cljs-promises, Promises
  • markdown-clj extensible Clojure/Script Markdown parser
  • json-html generates a DOM node with a human representation of the JSON/EDN encoded data
  • historian a drop-in atom-state-management (UNDOs!!) for your clojurescript projects
  • thi.ng/validate Schema based validation of nested data (CLJX)
  • clara Rete-based rule engine


  • cljs.test, a port of clojure.test built-in to the standard library
  • DEPRECATED: clojurescript.test a port of clojure.test that pre-dates the built-in version
  • clairvoyant, tracing
  • purnam.test, provides macros for testing with the karma test runner, works with async tests.
  • speclj A TDD/BDD framework for Clojure and Clojurescript, based on RSpec.


ClojureScript does not take pull requests. Please follow the links below to contribute to ClojureScript.

Additional Information