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
fetchdue to missing upload progress infetch. - 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.