upvote
I've found this to not be true at all. You can do quite a lot with just HTMX. Any client-side Javascript™ you strictly need can often be done fairly minimally with Locality of Behaviour (LoB).
reply
LoB isn't going to reconcile Chat Messages rendering state and Notifications. Their dependent state by nature. HTMX largely seems to ignore this reality.

In fact, the complexity of Chat Messages and Notifications synchronisation is one of the prime reasons why React exists.

reply
> In fact, the complexity of Chat Messages and Notifications synchronisation is one of the prime reasons why React exists.

Which makes it even more ironic that in the 10 years since React was announced in 2013 and when I quit Facebook, they never managed to fix the original state synchronization bug that they demonstrated in the original React announcement for more than a few months at a time at best.

I'm sure technically it wasn't a singular bug over the years and the causes were complex, but React did fuck all in relation to the unread message counter being correct.

reply
> In fact, the complexity of Chat Messages and Notifications synchronisation is one of the prime reasons why React exists.

SSE is perfect for chat/notifications and is a lot simpler than syncing. The server pushes updates to the client doesn't require a sync. SSE is also more performant since it can keep the connection open. The example below is on a $10 vps last I heard.

https://data-star.dev/examples/dbmon

reply
deleted
reply
right, so use the right tool for the job. most apps are boring CRUD apps and dont support chat.
reply
I think HTMX lacks a sensible way to do composition and reuse on the component level, something that react/vue/solid do extremely well. Since you are basically mostly swapping html content, it gets tricky if you want to reuse partials.
reply
That "massive hack" is supposed to be one of the core features of React.
reply
What I've found in practice is that HTMX is extensible enough that I can write a small amount of javascript to "put a funny plug on the end of HTMX" to talk to say Leafletjs if I'm drawing maps, and want things dynamically updated.

It works quite well, and saves me an awful lot of tedious mucking about with other stuff.

reply
For what it's worth, Claude Code is really good with HTMX and with adding that glue logic if needed.
reply
But it is different this time, we are going back to HTML! /s
reply