Comment by diggan

2 years ago

You do you. It's worth knowing though that using HTMX is not vanilla JS/HTML/CSS, it's literally the opposite of that.

Have you ever worked with just raw js?

Anything more than a todo list becomes unwieldy almost instantly.

Taking a small dependency to avoid that is well worth it.

Taking a whole “virtual dom” may be overkill though (looking at you, react)

  • > Have you ever worked with just raw js?

    Yes

    > Anything more than a todo list becomes unwieldy almost instantly.

    That's not a fact, just your personal experience

    > Taking a small dependency to avoid that is well worth it.

    Sometimes, yeah. Sometimes, no.

    > Taking a whole “virtual dom” may be overkill though (looking at you, react)

    In most cases, probably yeah. React was created to solve a specific problem a specific company experienced, then the community took that solution and tried to put it everywhere. Results are bound to be "not optimal".

It's one small dependency. Worst case, you write the library yourself.

You send a request to the backend, it then sends you HTML back (all rendered in the backend using a templating language such as Django templating engine, Twig or Liquid), you insert it into a div or so.

Htmx was Intercooler, worst case you create your own. But no additional scripts needed.

I've been able to kick out Vue out because Htmx covers my use case.

  • > It's one small dependency. Worst case, you write the library yourself.

    Every abstraction comes with a cost :) I'm not saying it never makes sense to use React, Vue, Htmx or anything else. But that's besides this conversation.

    > You send a request to the backend, it then sends you HTML back

    You're just trading doing stuff in the frontend for doing stuff in the frontend + backend. Might make sense in a lot of cases, while not making sense in other cases.

    • > You're just trading doing stuff in the frontend for doing stuff in the frontend + backend. Might make sense in a lot of cases, while not making sense in other cases.

      For me I can now do everything in the backend, I don't need to switch context (Twig templating language vs. JavaScript / SPA / etc). It's now easier to just keep up to date with PHP / Symfony, instead of also updating Node, npm / yarn, node_modules, and keeping up to date with everything.

      Otherwise the frontend part is messy and not so great code, since my JS skills are limited and it's too stressful for me to keep up to date with in addition to PHP / Symfony (I had worked with AngularJS 1, Angular 2-8, Vue 2, some React, played around with Svelte, managing stuff via bower, gulp, grunt, Webpack, parcel, npm, yarn 1/2/3, Node 10-18, nvm, corepack; and if I kept up, I probably need to look at bun soon).