Generated with Clerk from index.clj@7ab4a60

Moldable Live Programming for Clojure

Clerk takes a Clojure namespace and turns it into a notebook. Learn more in the Book of Clerk or read our paper.

Clerk logo by Jack Rusher.See notebook here.

FeaturesLearn more in the Book of Clerk or read our paper

  • Bring Your Own Editor

    Clerk lets you keep using your favorite editor and complements the Clojure REPL. The REPL is a peephole. See the full picture with Clerk.

  • Just Clojure Namespaces

    Use plain Clojure namespaces that you can easily put into version control and use as library code. For text-heavy documents, Clerk supports Markdown too.

  • Incremental Computation

    Clerk keeps the feedback loop short by only computing what's changed using a dependency graph of Clojure vars. This enables caching executions across JVM restarts and machines.

  • Rich Built-In Viewers

    Supports Markdown, Grid, HTML, Hiccup, SVG, Vega, Images, Plotly, TeX, tables, you name it. Plus, Clerk doesn't break a sweat when zooming into moderately-sized datasets.

  • Moldable Viewers

    Create custom viewers for your problem at hand. Clerk's viewer API is extensible via predicate functions, not only acting on types but also on values. Build stateful viewers with Reagent and dynamically import JavaScript libraries.

  • Static Publishing

    Produce static HTML pages and serve them from your local file system or any static webserver. If you like it batteries-included, take a look at clerk.garden, Clerk's simple GitHub-based publishing platform.

Use CasesSee Clerk Demos Repository

Clerk is compatible with any Clojure and JVM library enabling these amazing use cases by composing libraries from Clojure's eco-system.

QuotesSee more on Twitter

Talks