CLJS has been surprisingly good. re-frame really simplified a lot of the development. There are some oddities with trying to work out whether something is a JS problem or a CLJS problem, but for a solo project, it has been pretty good. CLJ/S seems to me a good spot between practicality and idealism (CL being the latter for some things). It's the most practical Lisp atm, and it can't get better than that.