htmx extends HTML with attributes that let any element issue AJAX requests, swap parts of the page, and respond to events. hx-get, hx-post, hx-swap, and hx-trigger cover most interactions.
The pitch is hypermedia-as-the-engine-of-application-state: server returns HTML fragments, the browser swaps them in. This collapses many SPA architectures into a thin layer over the rendering you already have in PHP, Python, or Rails.
The trick is keeping endpoints fragment-aware. With Symfony or Django this is one helper; in WordPress it usually means a couple of admin-ajax handlers returning rendered template parts.