Courses & TutorialsProgramming

Awesome ClojureScript – Massive Collection of Resources

Spread the love


A community driven list of ClojureScript books, frameworks, libraries and wrappers.



  • ClojureScript Unraveled – An open source book about the ClojureScript language that covers all the language features, how to use the compiler and the tooling for building applications and libraries.
  • ClojureScript: Up and Running – An introduction to ClojureScript written by big guns of Clojure Stuart Sierra and Luke VanderHart.
  • Etudes for ClojureScript – A hands-on-book of 30 companion exercises or études for introducing ClojureScript.
  • Learning ClojureScript – Master the art of agile single page web application development with ClojureScript.
  • Transforming Data with ClojureScript – A beginner’s guide to ClojureScript with interactive examples and exercises, “focusing on the main task that programming does—transforming data”.


  • ClojureScript Koans – A great way to start learning Clojure and ClojureScript on the web with interactive challanges.
  • Lambda Island – A full-stack web development course including front-end with ClojureScript, back-end with Clojure, language essentials, security, internet standards and system administration.
  • Learn Reagent – An introduction to ClojureScript with Reagent for developers. 1 hour free content is available. learn re-frame is its follow up.
  • Learning ClojureScript – A 2h 11m long introduction to Clojurescript by O’Really Online Learning. Also available on Udemy.


Awesome ClojureScript


  • Monet – A small ClojureScript library to make it easier to work with canvas and visuals.
  • Quamolit – A tiny declarative animation library , inspired by React.

Client/Server Communication

  • cljs-ajax – A simple Ajax client for ClojureScript and Clojure.
  • Fetch – A ClojureScript library that makes client/server interaction painless.

Code Analysis

  • kibit – Static code analyzer to find patterns of code that could be rewritten with a more idiomatic function or macro.

Data Serialization

  • Cljson – Clojure/ClojureScript library for accelerated browser data deserialization.
  • Transit – A data interchange format and set of libraries for conveying values between applications written in different programming languages.

Data Visualization

  • C2 – It lets you declaratively create HTML and SVG markup based on data.


  • Datascript – An immutable in-memory database and Datalog query engine in ClojureScript.
  • Jaki – A simple ClojureScript CouchDB client.
  • Konserve – A clojuresque key-value/document store protocol with core.async.
  • specql – Library for simple PostgreSQL queries with namespaced keys.


  • Ambly – A ClojureScript REPL into iOS JavaScriptCore.
  • cljs-devtools – Better presentation of ClojureScript values in Chrome Devtools.
  • Devcards – Devcards aims to provide a visual REPL experience for ClojureScript.
  • Instaparse – It aims to be the simplest way to build parsers in ClojureScript.
  • lein-cljsbuild – A Leiningen plugin to make ClojureScript development easy.
  • lein-figwheel – Leiningen plugin that pushes ClojureScript code changes to the client.
  • Lumo – Fast, cross-platform, standalone ClojureScript environment.
  • Planck – A stand-alone ClojureScript REPL for macOS and Linux based on JavaScriptCore.
  • Ribol – Conditional restarts for clojure/clojurescript.
  • shadow-cljs – ClojureScript compilation made easy
  • Truss – An opinionated assertions API for Clojure/ClojureScript.

Document Object Model

  • cljs-binding – It binds html elements to ClojureScript functions.
  • Crate – A ClojureScript implementation of Hiccup.
  • Dominator – Virtual-Dom in ClojureScript.
  • Dommy – A no-nonsense ClojureScript templating and DOM manipulation library.
  • Enfocus – A DOM manipulation and templating library for ClojureScript inspired by Enlive.
  • Freactive – A high-performance, pure Clojurescript, declarative DOM library inspired by reagent, om, reflex and hiccup.
  • Hiccups – A ClojureScript port of the Hiccup.
  • Hickory – It parses HTML into Clojure data structures, so you can analyze, transform, and output back to HTML.
  • json-html – Provide JSON and get a DOM node with a human representation of that JSON.
  • Kioo – DOM manipulation and templating library for Facebook’s React and Om in ClojureScript.
  • Respo – A responsive DOM library, inspired by React.
  • Sablono – Lisp/Hiccup class=”mega” style templating for Facebook’s React in ClojureScript.


  • codox – A tool for generating API documentation from Clojure or ClojureScript source code.


  • geom – A 2D/3D geometry toolkit for Clojure/Clojurescript.
  • Quil – A processing and graphics programming library.

HTTP Handler

  • Castra – An HTTP remote procedure call handler for Clojure.


  • Tempura – A Clojure(Script) i18n library, succeeding Tower
  • Tower – A Clojure(Script) i18n & L10n library.

JavaScript Interoperability

  • CLJSJS – An easy way for Clojurescript developers to depend on Javascript libraries.
  • Jayq – A ClojureScript wrapper for jQuery.
  • Purnam – A ClojureScript library designed to provide better clojurescript/javascript interop, testing and documentation tools.
  • Pylon – A Javascript class system in 100% Clojurescript.

CSS tools

  • Garden – A library for rendering CSS in Clojure and ClojureScript.
  • stylefy – stylefy makes it possible to define UI component styles as Clojure data and attach them into components easily without writing CSS selectors


  • Automat – A Clojure(Script) library for defining and using finite-state automata, inspired by Ragel.
  • Bardo – A Clojure(Script) library for functional interpolation and transitions.
  • core.async – A Clojure(Script) library designed to provide facilities for async programming and communication.
  • Entanglement – It creates atoms from other atoms and links the data together.
  • inflections-clj – Rails-like inflection library for Clojure and ClojureScript.
  • Keybind – Library for handling key bindings (shortcuts) in browser.
  • markdown-clj – Markdown parser in Clojure/ClojureScript.
  • namespacefy – A simple Clojure(Script) library which aims to make it easy to keep map keys namespaced, no matter where your data comes from.
  • om-tools – It aims to provide higher-order abstractions and utilities frequently useful when building components with Om’s API.
  • reforms – Beautiful Bootstrap 3 forms for Om and Reagent.
  • reagent-forms – Bootstrap form components for Reagent.
  • Sepal.clj – A library to generate Clojure code from a vector of strings and vectors with macro system.

React.js Interface

  • Brutha – A simple and functional ClojureScript interface to React.
  • cljsxJSX for Clojure and ClojureScript, also works with Inferno, Nerv, Preact, Snabbdome and others.
  • hx – A simple, easy to use library for React development in ClojureScript.
  • Om – A powerful interface to React, makes use of its object oriented structures.
  • Quiescent – It favors functional style, fully stateless.
  • re-com – A ClojureScript library of reusable components for Reagent.
  • Reagent – Minimalistic, feature complete.
  • Rum – Decomplected, extensible, simple.

Reactive Programming

  • Javelin – A Functional Reactive Programming library for ClojureScript.
  • Manifold-cljs – A port of Manifold to ClojureScript.
  • Reagi – An FRP library for Clojure and ClojureScript, built on top of core.async.
  • rx-cljs – A ClojureScript wrapper for Reactive Extensions (Rx) for Javascript.
  • Yolk – A thin ClojureScript wrapper around bacon.js.


  • Bidi – A Clojure(script) data driven routing library.
  • Router – Bidirectional Ring router for Clojure/Script. REST oriented.
  • Secretary – A client-side router for ClojureScript.
  • Silk – An isomorphic routing library for Clojure & ClojureScript.

State Management

  • component – Managed lifecycle of stateful objects in Clojure(Script).
  • hodgepodge – A idiomatic ClojureScript interface to HTML5 Storage.
  • mount – A beautifl idiomatic state management library.
  • plato – Incrementally persists atom state to Local Storage in ClojureScript.
  • storage-atom – ClojureScript atoms backed by HTML5 web storage.
  • Tuck – A micro framework for building Reagent apps that have a clean separation of view code and event processing code.
  • Waltz – A ClojureScript library that helps manage state in client-side applications using non-deterministic finite state machines.


  • cljs.test – Integrated test framework for ClojureScript (merged from clojurescript.test)
  • Expectations – A minimalist’s unit testing framework.
  • Speclj – A TDD/BDD framework for Clojure and ClojureScript.
  • test.check – A generative property-based testing tool inspired by QuickCheck.


  • Bouncer – A validation DSL for Clojure & Clojurescript applications.
  • form-validator-cljs – Validate forms with spec and fn.
  • Validateur – A Clojure validation library inspired by Ruby’s ActiveModel.

Web Framework & Template

  • atw-om – A web application template with Clojure/Compojure, ClojureScript/Om & core.async.
  • Chestnut – An Application template for ClojureScript/Om with live reloading.
  • Clops – An opinionated, full stack and easy to use web framework.
  • descjop – A template for Web based desktop application with Electron.
  • electron-template – A template for creating web based desktop applications with Electron, ClojureScript and Reagent.
  • Fulcro – A library for development of single-page full-stack web applications in clj/cljs.
  • Hoplon – Write everything in Clojure and ClojureScript, clientside and serverside.
  • Keechma – Micro frontend framework for ClojureScript and Reagent.
  • Luminus – It aims to provide a robust, scalable, and easy to use platform.
  • Macchiato – It aims to provide an easy to use platform for Node.js.
  • Mies – A minimal ClojureScript project template.
  • Mr-Clean – A reagent compatible library without react.js dependency.
  • Precept – A declarative programming framework.
  • re-frame – A Reagent Framework For Writing SPAs, in Clojurescript.
  • Tenzing – A ClojureScript template with no backend that uses Boot.
  • WebFUI – Client-Side Web Framework for ClojureScript.


  • Chord – Designed to bridge the gap between the triad of CLJ/CLJS, web-sockets and core.async.
  • Sente – Clojure(Script) + core.async + WebSockets/Ajax.

Related Post:

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button