6 ms·
Hey, I created htmx and while I appreciate the publicity, I’m not a huge fan of these types of hyperbolic articles. There are lots of different ways to build we
by recursivedoubts 10mo ago
Hey, I created htmx and while I appreciate the publicity, I’m not a huge fan of these types of hyperbolic articles. There are lots of different ways to build web apps with their own strengths and weaknesses. I try to assess htmx’s strengths and weaknesses here:
https://htmx.org/essays/when-to-use-hypermedia/ https://htmx.org/essays/when-to-use-hypermedia/
Also, please try unpoly:
https://unpoly.com/ https://unpoly.com/
It’s another excellent hypermedia oriented library
Edit: the article is actually not nearly as unreasonable as I thought based on the just-f*king-use template. Still prefer a chill vibe for htmx though.
- lagniappe 10mo agoI'm curious if the author of the article is an HN reader, and if yes, how this comment is received.
- moralestapia 10mo agoI will never ever ever ever touch htmx after this interaction I just witnessed.
- recursivedoubts 10mo agowhat do you mean?
- algallagla 10mo agoI'm the author of the original article. fwiw, I haven't seen anything that bothers me. And if there was originally a harsher response which I missed, well then I hope it wasn't merited. I'm pretty light-hearted about this topic! It's more fun that way.
- naasking 10mo agoI didn't find it too hyperbolic, I think they were very clear on where htmx can help, eg. the section "you're not building Google docs".
- recursivedoubts 10mo agoAgree updated my comment
- dec0dedab0de 10mo agoI haven't really tried htmx yet, but I used to love intercooler, and your essays are always a fun read. When I saw the title I thought it was some kind of joke from you, because it's like the opposite of your normal style.
- jadbox 10mo agoHow does Unpoly and htmx differ?
- recursivedoubts 10mo agounpoly is a more complete framework with concepts like layers and best in class progressive enhancement htmx is lower level and focuses on generalizing the idea of hypermedia controls https://dl.acm.org/doi/abs/10.1145/3648188.3675127 https://dl.acm.org/doi/abs/10.1145/3648188.3675127
- ZeroConcerns 10mo agoLLMs know nothing about Unpoly, and quite a bit about htmx. This requires you to actually learn Unpoly, because, well, even pointing your LLM-of-choice at the Unpoly docs (which are quite okay!) makes it regress-to-the-ugly-Javascript-workarounds-mean pretty much on try #1. I'm not yet sure whether this is a good thing or not -- I'll let you know once my latest iteration of my web framework is finally working as I envisioned, he-said sort-of-jokingly, which should be Soon Now. But yeah, either alternative still beats React by a country mile, since everything related to that descends into madness right away.
- recursivedoubts 10mo agoI don’t think there is anything in unpoly that a good llm couldn’t figure out with a look over the docs pretty quickly. It’s pretty simple and has some great functionality, especially if you are shooting for progressive enhancement.
- ZeroConcerns 10mo agoWell, I actually use Unpoly, and I can assure you that LLMs don't get it, no matter how many pointers to the (excellent!) docs one includes. Like, even just now, Claude Code with Opus 4-dot-latest, is absolutely convinced you need a bunch of fragile cascading Javascript listeners to dismiss a lower-level menu in case a dialog is opened, while the Unpoly docs, correctly and clearly, point out that 'shatter' exists for just that purpose. And this is one of the use cases that I continue to highlight as the achilles heel of LLMs. I'm not holding it wrong: they're not reading it right.
- PaulHoule 10mo agoIf you are comfortable building web apps like the early adopters did in 1999 that later got mainstreamed with Ruby-on-Rails and related frameworks, HTMX adds a wonderful bit of extra interactivity with great ease. Want to make a dropdown that updates a enumerated field on a record? Easy. Want to make a modal dialog when users create a new content item? Easy. Want a search box with autocomplete? Easy. As I see it the basic problem of RIA front ends is that a piece of data changed and you have to update the front end accordingly. The complexity of this problem ranges from: (1) One piece of information is updated on the page (Easy) (2) Multiple pieces of information are updated but it's a static situation where the back end knows what has to be updated (Easy, HTMX can update more than one element at a time) (3) Multiple pieces of information but it's dynamic (think of a productivity or decision support application which has lots of panes which may or may not be visible, property sheets, etc -- hard) You do need some adaptations on the back end to really enjoy HTMX, particularly you have to have some answer to the problem that a partial might be drawn as part of a full page or drawn individually [1] and while you're there you might as well have something that makes it easy to update N partials together. [1] ... I guess you could have HTMX suck them all down when the page loads but I'd be worried about speed and people seeing incomplete states
- refulgentis 10mo agoWhy did you reply to this comment? None of this mentions anything at all mentioned in the parent post. Was it just a shameless way to ride on what would become a top comment?
- librasteve 10mo agoHTMX Sucks https://htmx.org/essays/htmx-sucks/ https://htmx.org/essays/htmx-sucks/
- recursivedoubts 10mo agoso true
- Biganon 10mo agoI have to say: I absolutely love the kind of unhinged energy you radiate. Please keep being yourself.
- almosthere 10mo agoEverything in that resonated with me.
- azangru 10mo ago> No Jobs > Another practical reason not to use htmx is that there are, rounding off, zero htmx jobs. > I just did a search for htmx jobs on indeed and found a grand total of two: one at Microsoft and one at Oak Ridge National Laboratory. > A search for “react”, on the other hand, gives 13,758 jobs. > Seriously, developer, which of these two technologies do you want to hitch your career to? I do not advocated for htmx; but this take is so bad! Resume-driven development should not be a thing. If you are a professional developer, building a product for a user, your primary concern should not be the job market for when you quit the company you are working for, but rather making the best product possible for the user within the context of the current company. And if the product is such that it does not call for react, or some other javascript-rich client, then you shouldn't use it however many react jobs there may be on Indeed.
- nrclark 10mo agofwiw I'm the CEO of htmx, and I am a huge fan of these types of hyperbolic articles.
- puppy_lips 10mo agoI am starting to understand htmx.
- jabbywocker 10mo agoAs the CEO of HTMX I can assure you that you’ve only scratched the surface of the HATEOAS doctrines
- deleted 10mo ago[deleted]
- viiralvx 10mo agoDamn, Unpoly looks great! Never tried HTMX but have been a fan of it, it solves a UX problem that frameworks like Django and Rails suffer from, without needing to bring in something heavy like React. I'm currently working on a side project in Rails using Stimulus but sometimes I wonder if Stimulus is overkill with all of the controllers and stuff as well. Do you have an opinion on when you should reach for something like Inertia or Stimulus over htmx?
- mostlysimilar 10mo agoIn most simple cases you probably don't want to be handling request-response initiated DOM updates in a Stimulus controller. Turbo Frames and Turbo Streams are the more htmx-like in functionality and they're excellent for this.
- cassiogo 10mo agoI think the htmx counterpart from Rails folks would be Turbo not Stimulus
- adamzwasserman 10mo agohere is the long-promised frontal assault on Big State: dataos.software
- dpifke 10mo agohttps://unpoly.com https://unpoly.com touts "progressive enhancement." Third link on the page ("read the long story") points to https://triskweline.de/unpoly-rugb/ https://triskweline.de/unpoly-rugb/, which renders as a blank page with NoScript enabled. Sigh.
- irq-1 10mo agoIt's because of the demo wrapper/layers. Try just the raw demo: https://unpoly.com/examples/modal/preview.html https://unpoly.com/examples/modal/preview.html Still not perfect -- the demos should work too. I love the idea of a progressive framework and am willing to work around a few things to get it.
- internet2000 10mo agoYou really need to shut this down dude. If HTMX becomes famous for having overbearing advocates that's a really bad look. Look at what happened with Rust.
- deleted 10mo ago[deleted]
- bccdee 10mo ago"What happened to Rust" is that it got a lot of coverage for being good, then a few people were annoying about how good it is, and now a large number of other people have become annoying in their complaints about how annoying the first group was. Meanwhile, Rust & its community remain unaffected; adoption continues to grow, and Rust now used in the kernel, Windows, Android, AWS infra, etc. The problem you've encountered is that people are annoying. I'm afraid that's not specific to any one technology or community. Fortunately, annoying blog posts are easily ignored and would never stop a useful tool from being adopted anyway.
- jonathrg 10mo agoRust is doing great.
- yomismoaqui 10mo ago> Still prefer a chill vibe for htmx though. Said the horse with laser eyes (¬_¬)
- recursivedoubts 10mo agoit is a MEDICAL CONDITION
- DANmode 10mo agoNo avatars here.
- lgvld 10mo agoI love Unploy, the documentation as well, but I find it a bit too complex. For even simpler usecases I often use Alpine AJAX [1], which is an Alpine.js plugin giving your links and forms -- only, because progressive enhancement -- basic AJAX capabilities. [1] https://alpine-ajax.js.org/ https://alpine-ajax.js.org/
- rodolphoarruda 10mo agoI first read about Unpoly in Stephan Schmidt's Radical Simplicity website[1], I liked it's value prop and decided to try it. I found it bit too complex just as you said. A long time later I came across htmx and decided to try it even after reading a side comment that the library was "like unpoly". 15 minutes later I had a simple to-do list running htmx ajax calls using php and mysqlite in the backend. It was so easy I could not believe such thing could exist. Then I decided to read the Hypermedia book and never stopped using htmx in my projects. [1] https://www.radicalsimpli.city/ https://www.radicalsimpli.city/
- forzerpendulum 10mo agoHtmx is pleasant to use, but I lost a little respect for you after this prudish comment.
- recursivedoubts 10mo agomy bad