I'm writing web code again, embarrassingly enough, and it isn't the goodreads-for-ttrpgs thing. If anyone was waiting for that... sorry. Instead I'm writing the most self-indulgent thing possible, and I'm writing it in what some would call a self-indulgent way.
It's Clojure! And it's not ClojureScript, either. It's pretty much all server-side, on a weird database to boot (XTDB is not considered that weird in Clojuria, but it isn't even the one graph database on the JVM that most people in web development could name). I'm doing just about all the interactivity by making HTML snippets on the server and sending them down, via htmx and hyperscript, two very cool libraries that were designed to work together.
But I say "just about all" because there are things you can't address with even the most elaborate set of custom attributes, or even the nicest language designed to be jotted into one of said attributes. (Probably hyperscript could do a lot more for me than I've been using it for, but I have somewhat guiltily chosen to put it in the "things I look up real fast" box, rather than the "language to learn" box. That's its biggest and most explicit use case, in my defense, but it is a whole-ass language with which I could probably do this thing I'm about to say I did jeez)
Anyway. I had the goal of not writing any JavaScript for this project... and today I wrote some JavaScript for this project. The drag-and-drop API is cumbersome! Probably for good reasons, but still. Why not ClojureScript? Because incidental complexity in compiled projects, is the short answer. That wasn't the happiest part of my day. It didn't take lots of it to get me to realize that the code I'd written, less than a screenful, was so chock-full of DOM API bits that it was only barely not JavaScript. So I made it JavaScript. THERE. I HOPE YOU'RE SATISFIED
What the app actually is, is the most unhinged part. Stay tuned for part 2.
