Skip to content
Mike Fikes edited this page Mar 9, 2015 · 150 revisions

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

Read These First

Tutorials

Reference

Tooling

Tools

Editors

Leiningen plugins

Project Templates

  • chestnut Complete application template using Ring, Om, Figwheel and more
  • mies, absolutely minimal ClojureScript project template
  • mies-om, minimal Om project template
  • mies-node, minimal ClojureScript Node.js project template
  • figwheel, minimal ClojureScript and Figwheel project template optionally including Om or Reagent
  • cljs-start, full featured template

REPLs

Compatible Clojure Contrib libraries

Libraries

Dom Manipulation

React Wrappers

HTML Templating

  • sablono, Hiccup style HTML generation
  • 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

Graphics

  • quil, Processing for Clojure & ClojureScript
  • apogee SVG charting
  • 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

Networking

Data formats

Datastores

  • 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)

Native iOS with embedded JavaScriptCore

Misc

  • 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

Testing

Feedback

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

Additional Information

Clone this wiki locally