ClojureScript is an implementation of the Clojure functional programming language for JavaScript platforms (web browser, node.js, amazon lambda).
Discover the joy of ClojureScript for building single page applications, complex UI's, lightweight services and server side web applications. Design approaches common to ClojureScript & React will be covered along the way.
Projects covered here focus on the Figwheel-main development tool, the reagent library for react.js style applications, hiccup syntax for html content and ClojureScript code.
JavaScript npm packages can be used with Figwheel-main, however, this guide does not yet cover that topic.
Example websites
Requirements
Follow the Practicalli Clojure install instructions to set up a Clojure environment. ClojureScript tools depend on Clojure and Java, although there are self-hosted environments.
A Clojure aware editor is highly recommend along with web browser development tools to provide even greater feedback from the running application.
Re-write planned for 2021
Many enhancements have happened to ClojureScript since this book was created, especially around shadow-cljs which is not yet covered.
Content still relevant includes the TicTacToe game with ClojureScript, Reagent and Scalable Vector Graphics, the Practicalli ClojureScript YouTube playlist and building ClojureScript websites.
Additional Resources
Learning ClojureScript
Tooling
- figwheel-main - instant feedback for ClojureScript development
- figwheel-main project template - quickly create a figwheel-main based ClojureScript project
Community
- Official Google group
- Cljs js - javascript foreigner libraries for ClojureScript
Commercial courses
Heavy use of npm libraries required?
Follow the shadow-cljs documentation carefully and in detail if you wish your ClojureScript applications that work hand-in-hand with NPM and Node.js. Ensure the project runs on the command line first, before trying to run the project from an editor. Also check the documentation for specific configuration to ensure your chosen editor will work correctly with shadow-cljs
Creative commons license
Practicalli Clojure by Practicalli Creative Commons Attribution Share-Alike 4.0 International