A template for a web application written entirely in Clojure and ClojureScript.
To run the server from the REPL:
;; TODO: Example forthcoming.
The goal of this template is to bring together the best and most idiomatic practices (as of 2018) for creating a Clojure and ClojureScript web application. Necessarily, it makes a few judgment calls where community consensus doesn’t exist.
This is still WIP, but some things I know I do want here:
- Single-page app.
- A sample front-end with just a few features past Hello World. This will be based on a somewhat modified set of the practices described in parts of the book Web Development with Clojure, hopefully minus the web framework stuff.
- Component will wrap all state management and service integration. May replace this later with mount or integrant.
- The reloaded workflow, integrated with Component. This uses a dev release of clojure.tools.namespace, which supports ClojureScript.
- bidi will handle URI routing.
- Aleph for the integrated webserver. Might just have this just for running in development, and having the application run in a servlet container by default.
- Full stack unit and integration tests. Possible generative tests too.
- An example database, in SQLite, read from with Korma.
- Probably other stuff, like clojure.spec, Hiccup (for HTML templating), some documentation generation solution, edn, etc.
Copyright © 2018
Distributed under the GNU Public License Version 3.