Completing HTML as a Hypermedia System — A Quiet Revolution
Carson Gross creates intercooler.js — "Making AJAX as easy as anchor tags." A jQuery-dependent library using HTML attributes (ic-get-from, ic-post-to) to trigger AJAX calls. Inspired by Roy Fielding's vision of REST as a hypermedia-driven architecture.
Roy Fielding publishes "REST APIs must be hypertext-driven" — arguing that true REST means hypermedia controls drive application state. This essay becomes the intellectual foundation for both intercooler.js and later htmx.
Amid the pandemic, Carson refactors intercooler.js to drop jQuery entirely, leveraging modern browser APIs. Renamed to htmx ("hypertext markup extensions") to better reflect its mission: completing HTML as a full hypermedia system.
The first public release. Dependency-free. ~14KB gzipped. HTML attributes like hx-get, hx-post, hx-swap let any element issue HTTP requests and swap HTML responses — no JavaScript required.
Core features locked in: AJAX via attributes, WebSocket & SSE support (hx-ws, hx-sse), browser history management, CSS transitions, and the extension system. Carson declares it a "mature replacement for intercooler.js".
_hyperscript — a scripting language inspired by HyperTalk — becomes htmx's companion for inline client-side behaviors. An English-like syntax for DOM manipulation without writing JavaScript.
Idiomorph — Carson's DOM morphing algorithm — becomes the recommended swap strategy. The extension ecosystem matures: response-targets, preload, client-side templating. htmx is now used by thousands of projects.
ES Module support lands. htmx can now be imported as a module instead of only via script tag. Sass removed from the htmx.org website. The project modernizes its tooling while staying small.
Selected for the inaugural GitHub Accelerator cohort. Funding, mentorship, and visibility. This marks htmx's transition from a niche project to a recognized force in web development.
Carson publishes the HOWL Stack essay — a manifesto for server-driven web apps in any language. "The web was designed to be an open, polyglot & participative hypermedia system." JavaScript fatigue meets hypermedia clarity.
The book "Hypermedia Systems" by Carson Gross, Adam Stepinski & Deniz Akşimşek ships. Open-access on GitHub. A re-reading of Fielding's REST dissertation that asks: "Why did we build JSON APIs, then SPAs, then state managers, then bundlers on top of that?"
Carson's satirical essay "The Grug Brained Developer" resonates with thousands of developers tired of framework complexity. "Complexity very, very bad." It captures the mood of a generation questioning the SPA status quo.
htmx adds 16,800 GitHub stars in 2024 alone, hitting ~40K total. Named #1 front-end project on JavaScript Rising Stars 2024. Usage grows from 5% to 7% in the State of JS survey. New sites adopt htmx at a steady clip.
htmx 2.0 ships. Improved extension API, shadow DOM support, modern browser focus. Internet Explorer support moved to the 1.x branch which is "supported in perpetuity". Breaking: cleaner attribute handling.
In the Stack Overflow 2024 Developer Survey, htmx ranks #2 Most Admired web framework (72.9%), behind only Phoenix (83.7%). Ahead of React (62.2%), Svelte (72.8%), and Astro (72.2%). The community loves what it has built.
htmx powers network automation systems for the Paris 2024 Olympics. Used in production at Cisco, 37signals (Rails/Hotwire), and thousands of internal enterprise apps. No longer a side project — it's infrastructure.
Bug fixes, reportValidity support, improved TypeScript definitions, Rust framework examples. The 2.x line matures. Carson writes: "htmx is essentially feature complete" — the core is small and stable by design.
Carson publishes a provocative essay hinting at htmx 3.0. "I said there would never be a version three. But technically, I never said anything about four." The community debates: should htmx absorb fetch() or stay minimal?
Carson's Idiomorph DOM morphing algorithm is adopted by 37signals / Ruby on Rails as a core feature of Hotwire. The htmx creator's work now powers the default frontend for Rails — the framework powering millions of apps.
htmx 4.0 enters alpha. New hx-multipart extension for streaming responses, custom HTTP methods, improved history scroll restoration via Navigation API. The skip from 2.x to 4.0 is deliberate: "3 would be confused with React 3".
htmx 4.0 enters beta. Streaming multipart responses, parallel request support, improved event model. The library remains ~16KB gzipped, zero dependencies. "Probably the last 2.x release before 4.x goes golden master."
htmx is no longer just a library — it's a movement. Hotwire, Alpine.js, Datastar, Phoenix LiveView, and Unpoly all share the "HTML over the wire" philosophy. The SPA-or-nothing era is ending. The pendulum swings back toward simplicity.
From a jQuery plugin in 2013 to a 72.9% admired framework in 2024 — htmx never tried to be the next React.
It tried to complete HTML.
Carson Gross's thesis is simple: the web was designed as a hypermedia system. We added JSON APIs, then SPAs, then state managers, then bundlers, then compilers — all to work around the fact that we stopped using HTML as intended.
htmx asks: what if we just went back?