I made this using ClojureScript, same as I did back when I made #Wastrle. But, with Wastrle, I used the Reagent library, https://reagent-project.github.io/, which is a ClojureScript wrapper around React that I know believe is absolute sorcery.
I really enjoyed the way Reagent let me think about the design of Wastrle. However, I wanted to challenge myself with making something similar, though less intricate, using just ClojureScript.