Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've tried to use htmx exactly two times. Both times it just ran directly into a brick wall, because it's so limited and has no escape hatch where you can put your own logic. Their solution to this is their half baked new language, which isn't ready, a new language, and seems very much unclear. All they needed was proper hook points.


htmx is focused on hypermedia exchanges in the mode of normal HTML, so client-side stuff is out

it does, however, have an extensive event model to hook into, including pre and post request processing:

https://htmx.org/reference/#events

as well as an extensions API:

https://htmx.org/extensions/#defining

for client side scripting, I think you are talking about hyperscript, which is definitely more speculative than htmx, but I wouldn't call it half baked: a lot of people are using it successfully in production

a less-esoteric alternative would be to use alpine.js, which is similarly embedded but uses plain ol' javascript (and offers reactivity as well, hyperscript is more of a pure event-driven language)


Just checked alpine.js. While it's very nice, was a bit worried about this potentially risky eval use:

    <div x-html="(await axios.get('/some/html/partial')).data">


What's risky about evaluating your own code on your own pages?


The hooks are very limited unfortunately.


can you be more specific?

there are a large number of events

and the extension mechanism has enabled a diverse number of extensions:

https://htmx.org/extensions/

generally I consider htmx to be on the high side of JS libraries when it comes to events and hooks that can be used


I had this same experience. I thought it sounded like an interesting idea, but in practice I didn't think it lived up to some of the hype it often gets on HN.


In my opinion Unpoly does this in a very nice way, with what they call “compilers”.


I think htmx can do the same with built-in events---just not built-in. In fact you may even skip that one today because custom elements are wildly supported since 2020.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: