Skip to content
Aziz Zaeny edited this page Mar 21, 2017 · 150 revisions

DEPRECATION NOTICE: Please do not edit this wiki. Instead submit pull requests to https://github.com/clojure/clojurescript-site

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

Read These First

Tutorials

Online Clojurescript REPLs

Project Templates

Leiningen

  • 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

Boot

  • 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

Chat

Mailing Lists

Reference

Tips & Tricks

Tooling

Tools

Editors

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

REPLs

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

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
  • boot-atomizer Parse and Generate Atomic CSS

Graphics

  • 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

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)

iOS/Android

FRP

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

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

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

Feedback

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

Additional Information

Clone this wiki locally