A UI template (and reference app) built on Om, with modular components, router, async event handling, and responsive design with an emphasis on using Clojurescript all the way.
- Project structure for design and ui components
- Integrated Om components
- Responsive Design with Clojurescript using Mesh (not bootstrap, not less/sass)
- Core.async
- Reloadable code with Figwheel
- Routing with Secretary
- Mock api server with real Compojure routes
- Curated cljsjs libraries
- Integrated Ankha inspector, Om-i instrumentation
- Strictly follows Om releases
lein new mala chant
cd chant
The generated src looks like this:
src
├── layout
│ ├── grid.clj
│ ├── index.clj
│ └── typography.clj
└── ui
├── client.cljs
├── components
├── <comp>.cljs
├── <comp-style>.cljs
├── router.cljs
├── state.cljs
├── types.cljs
└── utils.cljs
├── core.cljs
env
└── dev
├── mock.clj
└── repl.cljs
└── debug.cljs
Start figwheel, watch garden, and a figwheel server integrated with mock router:
lein dev
Open http://localhost:3449/
and look for a Cljs brepl on the prompt.
Emacs Cider users can start a repl with the following commands
M-x cider-connect <RET>
localhost <RET>
7888 <RET>
(at the prompt ...)
(use 'figwheel-sidecar.repl-api)
(cljs-repl)
Ready to deploy? Generate an optimized js file
lein release
For more info, see the wiki.
A lein-template based on this reference app is under lein
. Significant changes
in the project structure and dependencies will be updated both in the reference
app and leiningen template.
For a production-ready Ring server template for building tiny services, see my other template, ring-micro.
A big thanks to @swannodette for Om, Joel Holbrooks for Garden, and Bhauman for Fighweel. Some code samples were copied from:
Copyright © 2016 Priyatam Mudivarti.
Released under the Eclipse Public License, same as Clojure.