Skip to content
David Goldfarb edited this page Sep 17, 2017 · 19 revisions

The Stone Soup Guide to ClojureScript

I started this Wiki a few years back as I tried to navigate the fast-changing space of ClojureScript tools. I abandoned it for a while, but picked it up again recently (mid-2017).

The rest of this page is mostly ancient gubbish: early notes from a few years ago. Rest of the pages in the Wiki are somewhat more useful - a raw capture of interesting links as I come across them, with incremental attempts at organization. My focus here is no longer exclusively ClojureScript; I'll include tidbits about related areas too, mostly in the Clojure/CLJS space, but with some blurring of the boundaries to include other tools too.

Feel free to browse, or suggest changes. PRs accepted happily.

Old start page...

I hope this will become a useful guide for ClojureScript (CLJS) developers. I am starting it now, April 2014, to "scratch my own itch". I am an occasional CLJS developer, fascinated by the power and flexibility of this new language but discouraged -- ironically enough -- by the rapid rate at which the development tool-chain is improving. Though this improvement is wonderful, it means that I spend way too much time upgrading my tools rather than focusing on my projects.

My goal in this guide is to document the evolving best practices for CLJS development. I hope that I only need to bootstrap the effort before it becomes useful enough that other folks will add their knowledge and insights.

Here are the topics that I want to cover. For now, this is just an outline. I will fill in the pieces as soon as I can. I welcome everyone to contribute and help complete this faster.

The Stone Soup philosophy

I don't want to write a book, or even a complete guide to ClojureScript programmning. Instead, I want to just:

  • Link to best-practice documents elsewhere on the web
  • Fill in just enough missing pieces to help hold this structure together
  • Invite colleagues to improve this document

Most of this ClojureScript Stone Soup project will live in this wiki pages. The main project repository will, I think, only hold occasional bits of sample code.

What is Clojure?

  • Lisp
  • Functional programming
  • Books to read

Differences between ClojureScript and Clojure

  • Java and JavaScript
  • Hosted compilation
  • Google Closure

Installing a ClojureScript development environment

  • Java
  • Clojure
  • Leiningen
  • Editors, IDEs, and other programming environments
  • Emacs
  • Light Table
  • Browser tools

Building your first ClojureScript project

Frameworks and libraries

  • Om - Reactive DOM manipulation library; a thin wrapper around Facebook's React JavaScript library. The learning curve is fairly steep, but the abstraction model is great and this is now (early 2014) quickly becoming the best-of-class tool.
  • Reagent
  • Re-frame
  • Pedestal
  • Hoplon
  • Dom manipulation

REPL based development

  • Austin

Interacting with your app

  • Reloading namespaces

Related technologies

Client-server apps

  • Ajax libs
  • Scalability
  • Databases

Client-only apps

  • Using local storage
  • Communication

Testing

  • TDD
  • Automated testing
  • PhantomJS
  • Browser-based tools
  • Heroku
  • AWS

Mobile apps

  • Android
  • iOS
  • Microsoft

Clone this wiki locally