Clojure
Need help with holygrail?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
danielsz

Description

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

131 Stars 9 Forks 51 Commits 0 Opened issues

Services available

Need anything else?

  • Holy grail

+BEGIN_QUOTE

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

+END_QUOTE

** 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 [[http://boot-clj.com/][Boot]], a build tool, and [[https://github.com/danielsz/system/tree/master/examples/boot][system]], a component library.

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

+BEGIN_SRC shell

$ git clone [email protected]:danielsz/holygrail.git $ cd holygrail $ boot dev

+END_SRC

** Principle of operation Compose a build pipeline:

+BEGIN_SRC clojure

(deftask dev "Run a restartable system in the Repl" )

+END_SRC

Start it:

+BEGIN_SRC shell

$ boot dev

+END_SRC

The headless REPL advertises its coordinates.

+BEGIN_SRC shell

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

+END_SRC

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.

+HTML: Holy Grail demo

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.