Skip to content


Repository files navigation


An effort to create a central documentation hub for the Clojure & ClojureScript ecosystem.

👋 Need help getting started? Say hi on Telegram, Twitter or Clojurians Slack in #cljdoc.

CircleCI Contributors Slack


📹 I (Martin) gave a talk at ClojuTRE about cljdoc which is probably a good intro if you want to understand what cljdoc is and why it exists. If you prefer text, read on for the Rationale.

Publishing Clojure library documentation is an often manual and error prone process. Library authors who want to provide documentation need to set up tooling to create such documentation, host it and keep it updated. In combination all these steps introduce a significant amount of friction that often leads to there not being any HTML documentation at all. If there is documentation it’s often only a matter of time until it’s out of date with the latest release.

In short: Publishing documentation is hard. Harder than it has to be.

By fully automating the process of publishing documentation we can take a great burden from the shoulders of library maintainers and let them focus on shipping great libraries with great documentation.

A central place and consistent UI for all Clojure/Script library documentation will also make it easier for developers to find and work with documentation.

By centralizing this publishing process we can also build up a global understanding of the Clojure/Script ecosystem enabling many more interesting use-cases down the road.


  • Provide an easy way to host library documentation for Clojure/Script library authors

  • Deal with all the boring stuff: hosting, updating, keeping old versions around

  • Build an ecosystem-encompassing database (+ API) of artifacts, namespaces and their contents.

  • Support API documentation, articles and examples.

  • Encourage the writing of more and better documentation.


  1. Take look at our Contributing doc

  2. Get up and running by following the steps in Running cljdoc locally

  3. Understand why things are the way they are by reading our Architecture Decision Records


martinklepsch borkdude avichalp dawranliou residentsummer tonsky danielcompton samihda saskali jorinvo IamDrowsy angusiguess greg-kargin rakyi nikolap mhuebert elarous mk bbatsov SevereOverfl0w roman01la mfikes anthonygalea devurandom jsimpson-ovo Tavistock alex-dixon timothypratley kkinnear karls ikitommi pesterhazy eerohele nberger ajoberstar polymeris ryrobes julienba crimeminister seancorfield holyjak lread nha mjhanninen jacobobryant lins05 jimmyhmiller awkay tobias frozar moonbrv plexus davidjameshumphreys KingMob green-coder kolharsam miikka renatoalencar kloimhardt superstructor corasaurus-hex rvalentini rollacaster vemv piotr-yuxuan RickMoynihan FieryCod cloojure IGJoshua clyfe sritchie metasoarous BrunoBonacci anthony-khong aaronEberhart mpenet cldwalker dAnjou wilkerlucio jpmonettas pragyanatvade kxygk JulienRouse nblumoe cjohansen marcomorain f-f ghost smahood witek thheller zcaudate rubygeek Biserkov bhb aviflax gnl jmlsf gacelita l3nz bfontaine kumarshantanu glts Shashai daveyarwood erasmas esuomi j-cr lilactown noprompt oskarkv patrickaroo puredanger serioga somecho viebel vlaaad AdamFrey Raynes anmonteiro atroche ccfontes davidsantiago floybix hugoduncan ieure metametadata moea moxaj mtnygard odyssomay rm-hull rwilson sbauer322 tsulej weavejester ptaoussanis tengstrand

Did we leave someone out? That certainly was not our intention, please do let us know!