Welcome! Please see the About page for a little more info on how this works.

+2 votes
in ClojureScript by

On my previous job I was developing web application with Clojure on backend and ClojureScript on frontend. Main perceived difference in day-to-day workflows was approach to reloading: on Clojure side, I much more often sent form to REPL one by one, and sometimes restarted whole system using integrant. On ClojureScript side, I mostly edited files and saved them, and figwheel then would reload everything and refresh views.

Recently I was exploring different pREPLs that exist today, and stumbled upon various ClojureScript pREPLs, and tried bare-bones ClojureScript setup, which worked just fine with the same workflow as Clojure's one. So it seems that ClojureScript does support same approach to development as Clojure.

So, is it feasible to use bare-bones ClojureScript without figwheel and refresh rendered ui from REPL, similarly to how it's done on Clojure side with integrant? If so, why it seems that figwheel is so ubiquitous on frontend?

1 Answer

+8 votes

I often only use Figwheel when dealing with UI layout. I think this is where Figwheel really hits the sweet spot, drastically reducing the code-review-code-review cycle, especially for layout tweaks.

For library code or business logic code, I often prefer doing conventional REPL development (and will stop Figwheel's auto-build if in a Figwheel project). In those situations I'm interested in changing or adding functional behavior that may not have an immediate visual impact in the UI, so the hot-reloading isn't as helpful there.