Htmx 4.0
Points and comments are a snapshot, not live.
Htmx 4.0.0 release transitions from XMLHttpRequest to fetch(), adds explicit attribute inheritance, and new features.
Htmx 4.0.0 is released after 8 months of development, moving from XMLHttpRequest to the fetch() API internally. Major changes include explicit attribute inheritance (requiring :inherited suffix), standardized event naming (e.g. htmx:before:request), and history now re-fetches pages instead of caching in localStorage. New features include morph swap support, the <hx-partial> tag for multi-target server responses, and several extensions like htmx-live scripting. Version 2.x remains the 'latest' npm tag until early 2027. An upgrade CLI tool scans for breaking changes.
What commenters are saying
Commenters congratulate the team and share enthusiasm for htmx, with several discussing the Go/SQLite/htmx stack for fast prototyping. A few note the skipped version 3 as a joke honoring the original no-breaking-changes promise. One commenter questions htmx's advantage in the LLM era since LLMs now generate JavaScript as easily as htmx. The developer responds that htmx remains a labor of love, and LLMs actually often suggest htmx for smaller projects, especially Claude.