// the find
bigskysoftware/htmx
</> htmx - high power tools for HTML
htmx lets you add AJAX, WebSockets, and SSE to HTML elements via attributes, avoiding the need for a JavaScript framework for server-rendered apps. At 14kb gzipped with zero dependencies, it's a serious option for teams using Django, Rails, Go templates, or anything that renders HTML on the server. Not for SPAs — it's specifically for the HATEOAS crowd.
14kb, zero dependencies, no build step required — you can drop a script tag and be done. The attribute-based model keeps behavior local to the markup, which is actually easier to debug than hunting through JS files. Extension system is genuinely useful: SSE, WebSockets, morphdom diffing, and response-target routing are all first-class. The test suite covers every attribute individually, and the regression file suggests they take backwards compatibility seriously.
Complex client-side state (shopping carts, multi-step wizards, real-time collaborative editing) is painful — you end up fighting the model or mixing in Alpine.js, which defeats some of the simplicity argument. The out-of-band swap feature (hx-swap-oob) works but gets messy fast in non-trivial UIs. CVE-2026-3682-1 is listed in the docs, which means there's been at least one security issue in the HTML parsing path — worth reading before you start proxying untrusted server responses through it. History management with hx-push-url has enough manual tests to suggest it's fragile across browsers.