Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. shadow-cljs

shadow-cljs

EPL-1.0Clojure

A comprehensive build tool and development environment for ClojureScript with seamless npm integration.

Visit WebsiteGitHubGitHub
2.4k stars187 forks0 contributors

What is shadow-cljs?

shadow-cljs is a build tool and development environment for ClojureScript that simplifies compilation and integrates seamlessly with npm. It provides fast builds, live reload, REPL support, and targets multiple platforms like browsers, Node.js, and React Native, solving the complexity of setting up ClojureScript projects.

Target Audience

ClojureScript developers who want a streamlined build process with modern JavaScript tooling, especially those working on web applications, Node.js scripts, or React Native projects.

Value Proposition

Developers choose shadow-cljs for its ease of use, excellent npm integration, and comprehensive feature set out of the box, reducing configuration overhead compared to other ClojureScript build tools.

Overview

ClojureScript compilation made easy

Use Cases

Best For

  • Building ClojureScript web applications with hot-reload
  • Developing Node.js scripts or CLI tools with ClojureScript
  • Creating React Native apps using ClojureScript
  • Integrating npm packages into ClojureScript projects seamlessly
  • Setting up a ClojureScript development environment quickly
  • Optimizing ClojureScript builds with code splitting

Not Ideal For

  • Projects using pure JavaScript or TypeScript without ClojureScript
  • Teams heavily invested in traditional Clojure tooling like Leiningen or tools.deps for all build aspects
  • Simple one-off scripts where a full build tool setup is overkill

Pros & Cons

Pros

Seamless npm Integration

Directly use npm packages and manage JavaScript dependencies without complex bridging, as highlighted in the README's features.

Versatile Build Targets

Supports :browser, :node-script, :npm-module, :react-native, and more out of the box, simplifying multi-platform development.

Developer Experience Focus

Includes live reload for CLJS and CSS, a CLJS REPL, and a built-in development server, making development smoother and more interactive.

Fast Incremental Compilation

Reliable caching ensures quick rebuilds during development, reducing wait times as mentioned in the features list.

Cons

Java Runtime Dependency

Requires Java SDK 21+ as per the requirements, adding an extra setup step and potential compatibility issues compared to pure Node.js tools.

Incomplete Documentation

The User's Guide is noted as a work in progress in the README, which can make learning and troubleshooting more challenging for new users.

npm-centric Ecosystem

While excellent for npm integration, it may not align well with teams preferring Clojure-specific dependency management without JavaScript tooling.

Frequently Asked Questions

Quick Stats

Stars2,388
Forks187
Contributors0
Open Issues41
Last commit2 days ago
CreatedSince 2015

Tags

#compiler#clojurescript#repl#development-environment#live-reload#javascript#hot-reload#code-splitting#build-tool

Built With

C
ClojureScript
N
Node.js
n
npm
J
Java

Links & Resources

Website

Included in

Clojure2.8kClojureScript1.1k
Auto-fetched 1 day ago

Related Projects

LeiningenLeiningen

Moved to Codeberg; this is a temporary convenience mirror

Stars7,307
Forks1,580
Last commit7 months ago
lein-figwheellein-figwheel

Figwheel builds your ClojureScript code and hot loads it into the browser as you are coding!

Stars2,874
Forks205
Last commit2 years ago
LumoLumo

Fast, cross-platform, standalone ClojureScript environment

Stars1,875
Forks83
Last commit3 years ago
BootBoot

Build tooling for Clojure.

Stars1,748
Forks178
Last commit5 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub