DEV Community

HTMX Is Worse Than React, and WebSocket Is Obsolete?

Alex on July 15, 2025

Trying To Fix The Web Dev: Part 2, The Solution? If you missed an introduction to the series, please check it out first. This is the ...
Collapse
 
moopet profile image
Ben Sinclair

1 is basically jQuery's ajax* functions but with a lot more cruft in your HTML.

Personally, I want the page to work without JavaScript as much as possible, and to bolt things on, and leave everything in data-* attributes.

Collapse
 
cmaxm profile image
cmaxm

Mind blowing 🤯. These articles will become legendary.

Collapse
 
parag_nandy_roy profile image
Parag Nandy Roy

Such a refreshing breakdown ..

Collapse
 
turboturtle profile image
TurboTurtle

That’s a lot of heat. Excited to see how you wrap this up in Part 3!

Collapse
 
derstruct profile image
Alex

Probably Part 3 will not be a wrap-up yet..

Collapse
 
dricomdragon profile image
Jovian Hersemeule

Great article ! So many web tech references to check out.

Btw, found a typo :

Lavarel Livewire

Collapse
 
derstruct profile image
Alex

Thanks, fixed

Collapse
 
artyprog profile image
ArtyProg • Edited

I am not sure Juris is disqualified, I am waiting Resti opinions

Collapse
 
derstruct profile image
Alex • Edited

I mentioned it specially for you

Collapse
 
artyprog profile image
ArtyProg • Edited

Thank you :-)

Thread Thread
 
derstruct profile image
Alex • Edited

Anyway, it will be interesting to hear Resti Guay's opinion on this. I hope you will share it.

Thread Thread
 
artyprog profile image
ArtyProg • Edited

Perhaps will he respond himself🙂

Thread Thread
 
resti_guay profile image
Resti Guay

Hi! nice article rant about the ecosystem and I totally understand the sentiment and I'll wait for part 3. Thanks for including juris. It helped a lot. Cheers

Fore sure this can't be done in server.
Juris reactive style attribute for Heavy Physics Simulation w/o canvas and library

Thread Thread
 
artyprog profile image
ArtyProg • Edited

Thank you Resti,
Awesome , could be part of a Dom DemoScene :-)

Thread Thread
 
derstruct profile image
Alex

Thanks much for coming here.

Impressive demo! Of course, there is no need to do it on the server; some things make more sense on the front.

Good luck with Juris!

Collapse
 
fhsheridan profile image
Hunter Sheridan

Thank you for these articles. I enjoyed them.

Just curious, have you ever looked at Inertia.js, and if so, where would it fit in your taxonomy above?

It's not a new wave front end framework at all .. it's not even a framework.
It's not hypermedia driven or partial pages.
it's not grandpa websocket.

But it does eliminate the need for backend APIs which I thought was fairly creative. A rich view (view logic and view state) with domain logic, domain state and domain control flow on the backend, and a messaging protocol in the middle.

Looking forward to your next article.
Thanks

Collapse
 
derstruct profile image
Alex • Edited

It's a pleasure to read such comments; thank you as well.

I had never heard of Inertia, so I briefly checked it out.

If I understand correctly, Inertia enables the dynamic serving of front-end framework components in response to path changes (that's how the server controls the UI). It ships data alongside components (instead of performing API reads) and utilizes forms instead of relying on API writes. Additionally, it supports SSR with hydration + Node.js.
It's like a combination of Laravel Livewire and Next.js. That's interesting; the server determines a set of components and data on the page, and these components define the UI behavior - nice separation of concerns.

What would worry me:

  • Hydration (not a fan) for SSR
  • To process user actions or change content, you change the path (idiomatic way); it's difficult to judge without any usage experience, but on a larger scale (many read-writes), it could lead teams to run REST in parallel, which kinda ruins the concept.
  • Endpoint authorization requires care, as always.

I think it's a legitimate and unique approach, and it works well when your app is heavier on on-page interactions than on back-end communication.

Collapse
 
fhsheridan profile image
Hunter Sheridan • Edited

Hi Alex

Thank you for the quick response.

My naive perspective: I think of Inertia.js as a RPC messaging protocol over HTTP. It's scope is limited to interception -> encoding/decoding to/from inertia protocol -> handoff to the backend framework or handoff to the frontend component framework (and update browser history). And that's it scope wise.

I believe Hydration, SSR, etc are primarily the scope of the respective front end and back end frameworks.

If you squint when you look at the Inertia.js protocol/json coming from server to front end, you can almost see SOAP :-).

But, I might be all wet.

Thanks
Hunter

Thread Thread
 
fhsheridan profile image
Hunter Sheridan

@derstruct

Hello Alex

You are correct. Inertia will spin up node on the backend and use Vue, React, etc for SSR, SSG etc.

Thanks

Collapse
 
marcio199226 profile image
oskar

obviolsy there are not better than angular or react and will never be better due to their nature, those "frameworks" or maybe superset of html are desgined for people who don't know or they don't want to know js or they think that using them is faster, yeah it is for prototyping/poc/mvp not for products with complex functionalities

Collapse
 
derstruct profile image
Alex

Baseball, Huh?

Collapse
 
marcio199226 profile image
oskar

??

Collapse
 
jesperhoy profile image
Jesper Høy

You lost me at "...But C#, so who cares ("

Collapse
 
derstruct profile image
Alex

C'mon, why so serious? It's just a joke, no disrespect for C# enjoyers. I love Rust; if I was reacting every time someone dunked on it, living in a cave would be my only option.

Collapse
 
eljayadobe profile image
Eljay-Adobe

I liked the joke. And I'm a C# (and .NET / Mono) fanboy.