Htmx 2.0.0 has been released

Release scope and migration

  • 2.0 is described as mostly a cleanup release rather than big new features.
  • Internet Explorer support was dropped, with a plan to progressively strip related shims and slim the core.
  • An official migration guide exists and some users praised the “upgrade music” on that page.
  • Docs now reflect 2.x; some note the front page still advertises IE11 compatibility.

Extensions, head support, and internals

  • <head> update support remains an extension, not core; there’s ongoing debate whether it should move into core given its importance with boosted navigation.
  • The extensions site moved, causing 404s and discoverability issues; redirects and better docs are requested.
  • Internally, the library still uses some legacy helpers from the IE era and XHR is retained over fetch due to missing upload progress in fetch.
  • There is interest in making responses more mockable via events.

Size, performance, and minimalism

  • Concern raised over growth from early 1.0 (~26KB) to ~45KB minified.
  • Maintainers argue most size now is real functionality (history, events, queues, form semantics), and a few extra KB is acceptable, especially with caching.
  • Critics emphasize parse/execute cost on low-end devices and point to much smaller libraries (e.g., HTMZ, Ajaxial, PHOOOS).
  • Idea of a more minimal “preact-like htmx” is floated.

Ecosystem, standards, and alternatives

  • Many want htmx-like features standardized in HTML; there are ongoing discussions with browser vendors, especially Chrome, with concerns about Chrome-only features and vendor influence.
  • Broader frustration appears around the web platform lacking basic widgets (list/tree views, datepicker, include-like tags). Some attribute this to misaligned incentives; others reject conspiracy explanations and point out standards are open to contributions.

Usage patterns and developer experience

  • Widespread enthusiasm: people report large reductions in custom JS (hundreds of lines) and easier development, especially with server-rendered templates.
  • Common stacks: Go + templates/Fiber/Templ, Django + templates, Flask + Jinja, Rust (axum + maud), Clojure, Kotlin/ktor, Node with various templaters, .NET.
  • Static-site plus htmx is used for SPA-like navigation and lazy-loading fragments.
  • Some mix htmx with SPA frameworks (e.g., Vue) on separate routes during transitions.

Critiques and limitations

  • Some see htmx as a new “jQuery”: great for rapid iteration but unwieldy as complexity grows and interaction logic piles into HTML.
  • Error handling is cited as awkward.
  • Others argue htmx is not a replacement for fully interactive SPAs; web components and other JS-centric approaches remain preferred for some use cases.