Skip to content
danielszPublic

About

Demo of a restartable back-end in the REPL + hot-reloadable front-end in the browser.

Resources

Stars

130 stars

Watchers

5 watching

Forks

Latest commit

 

History

51 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Holy grail

Well, on second thought, let’s not go to Camelot – it is a silly place. — King Arthur

What is it?

This demonstrates the holy grail workflow for web development the way I envision it: an auto-restartable back-end in the REPL + a hot-reloadable front-end in the browser.

This workflow is built on top of Boot, a build tool, and system, a component library.

Installation

Clone this repo, cd into it and start the development pipeline build.

$ git clone git@github.com:danielsz/holygrail.git
$ cd holygrail
$ boot dev

Principle of operation

Compose a build pipeline:

(deftask dev
  "Run a restartable system in the Repl"
  []
  (comp
   (environ :env {:http-port 3000})
   (watch)
   (system :sys #'dev-system :auto true :files ["handler.clj"])
   (reload)
   (cljs)
   (repl :server true)))

Start it:

$ boot dev

The headless REPL advertises its coordinates.

nREPL server started on port 49722 on host 127.0.0.1 - nrepl://127.0.0.1:49722

You can connect to it if you plan to do development in the REPL (M-x cider-connect in Emacs works great).

Your web app is started and listening at http://localhost:3000.

The auto option in the system boot task takes care of your application lifecycle. Your system will automatically be reset after editing handler.clj. Changes elsewhere that do not require a system restart will be reloaded on the fly everytime you save your work.

Note: The build.boot in this repo already contains those options.

Demo

A demo video that tries to demonstrate how developing for the web can be a liberating and seamless experience.

Holy Grail demo

Do you feel the creative juices flow? Are you ready for endless hours of sheer creative output?

About

Demo of a restartable back-end in the REPL + hot-reloadable front-end in the browser.

Resources

Stars

130 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages