I use clojurescript to interact with React. Luckily with a small community we aren&#x27;t overrun by build tools! I&#x27;ve recently taken up the boot[1], and it&#x27;s amazing.  I&#x27;m able to quickly get up a live-reloadable environment wherein I can actually _understand_ what is going on.<p><pre><code>    cd my_project
    boot dev
</code></pre>
&#x27;boot dev&#x27; is a task that&#x27;s defined in the project&#x27;s build.boot file. It compiles the cljs files to a main.js file, and serves it from a specified directory.<p>Any edit to a cljs file triggers a recompile (of that namespace only - takes about 0.1 second).  If the recompile is unsuccessful then a <i>buzz</i> sound plays. If the recompile is successful, boot will play a nice subtle <i>ding</i> sound, and reload the main namespace. With immutable datastructures everywhere, arranging the app&#x27;s state to allow reloading is simple.<p>How simple? There&#x27;s a fantastic tutorial about how to setup everything I&#x27;ve just described at: [2].<p>This template will spit out all the code needed for the live-reload-cljs thing [3].  Once you install boot (with &#x27;brew boot-clj&#x27; it&#x27;s on apt-get too), You can run it with<p><pre><code>    boot -d seancorfield&#x2F;boot-new new -t tenzing -a +reagent -n boot-cljs-project
    cd boot-cljs-project
    boot dev
    ;; then edit the cljs file.
</code></pre>
[1] <a href="http:&#x2F;&#x2F;boot-clj.com" rel="nofollow">http:&#x2F;&#x2F;boot-clj.com</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;magomimmo&#x2F;modern-cljs&#x2F;blob&#x2F;master&#x2F;doc&#x2F;second-edition&#x2F;tutorial-01.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;magomimmo&#x2F;modern-cljs&#x2F;blob&#x2F;master&#x2F;doc&#x2F;sec...</a><p>[3] <a href="https:&#x2F;&#x2F;github.com&#x2F;martinklepsch&#x2F;tenzing" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;martinklepsch&#x2F;tenzing</a>