Web applications are increasingly taking two divergent forms:
① Real-time/presence-oriented/multiplayer/desktop-ish (Figma, &c) built using a mostly-WASM + custom renderer approach. I think of this as the “video game stack”.
② Classic UI-over-a-DB apps (almost everything anyone builds).
I contend that most popular web development stacks are badly suited for both, being unable to handle ① and way too complex to make sense for ②.
@jack would you consider something like Rails poorly suited for ②? IMO it's well-suited, but obviously still complex.
@sanityinc I would have to expand to blog post length to talk about the pros and cons of various stacks. To their credit, the Rails people are at least trying to route around the front-end trash fire with HotWire:
@jack I always tried to avoid any clever but Rails-specific front-end stuff in Rails, and these days I'd avoid hotwire too, and use htmx as necessary. They are definitely heading in the right direction, though.
@sanityinc I am experimenting with a set of defaults to make building web apps in Clojure as painless as possible. It uses HTMX and (currently) PicoCSS, Datomic local, and some helper functions. Extremely agreeable REPL workflow and quite fast from nothing to something.
@jack @sanityinc i’ve made a variation of hot reload middleware for this kind of stack:
https://github.com/licht1stein/ring-refresh
Also I prefer bulma css to pico, as pico is a bit too simple and all elements are too large. I did build a few things with pico. There’s also foundation css that also seems nice.
@mykhaylo @sanityinc I have an “evaluate current sexp and reload the browser” hot key in emacs.
Pico was chosen as the least bad option after looking at all the small CSS frameworks, including Bulma. In the long run, I’ll probably make my own thing because I have unmet aesthetic preferences…
@jack @sanityinc how does the hotkey work? And I’m definitely looking forward to your take on css
@mykhaylo @sanityinc I don’t understand the “how does it work” question. Are you asking how it’s implemented?
@jack @sanityinc yes, using apple script on mac comes to mind. But maybe there’s a better way.