Post

The browser already did server-driven UI — through links and forms, but those replace the whole page. htmx lifts that limit: any element can send a request, with any method, and the response replaces the piece of the DOM you point it at.

A whole layer goes away — no client model to keep in sync with the server. Behavior is written on the element itself: hx-get, hx-target, hx-swap are right there in the markup, no hunting for handlers across JS files (htmx's author has an essay on this — locality of behaviour).

For a large class of apps — CRUD, admin panels, dashboards, forms — that's enough, with no separate front end. htmx's gap is the state that lives only in the browser: whether a dropdown is open, a form draft, the active tab.

The server doesn't need it. That's the seam Micra fills: htmx delivers the markup, Micra holds the local state on top. In 2.7.0 the wiring is three lines — mount on swap-in and one autoCleanup() for teardown.