| name | htmx |
| description | HTMX hypermedia-driven development with hx-get, hx-post, hx-swap, hx-trigger, out-of-band swaps, boosting, extensions, and minimal JS patterns |
| layer | domain |
| category | frontend |
| triggers | ["htmx","hx-get","hx-post","hx-swap","hypermedia","htmx pattern","html over the wire","minimal javascript"] |
| inputs | ["Interaction pattern (form, search, infinite scroll, modal)","Server framework (Express, FastAPI, Go, Rails)","Progressive enhancement requirements"] |
| outputs | ["HTMX attribute markup","Server endpoint returning HTML partials","Extension configurations"] |
| linksTo | ["nodejs","fastapi","django","forms"] |
| linkedFrom | ["api-designer","ui-ux-pro"] |
| preferredNextSkills | ["forms","css-architecture"] |
| fallbackSkills | ["react","vue"] |
| riskLevel | low |
| memoryReadPolicy | selective |
| memoryWritePolicy | none |
| sideEffects | [] |
HTMX Hypermedia Skill
Purpose
Build dynamic web interfaces by returning HTML from the server instead of JSON. HTMX extends HTML with attributes for AJAX requests, CSS transitions, and WebSocket/SSE connections -- no build step, no virtual DOM, no client-side routing.
Core Philosophy
Server returns HTML partials, not JSON.
The browser is the template engine.
Hypermedia is the engine of application state (HATEOAS).
Installation
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
Core Attributes
| Attribute | Purpose | Example |
|---|
hx-get | GET request | hx-get="/api/users" |
hx-post | POST request | hx-post="/api/users" |
hx-put | PUT request | hx-put="/api/users/1" |
hx-delete | DELETE request | hx-delete="/api/users/1" |
hx-swap | How to swap content | hx-swap="innerHTML" |
hx-target | Where to place response | hx-target="#results" |
hx-trigger | What triggers the request | hx-trigger="click" |
hx-indicator | Loading indicator | hx-indicator="#spinner" |
hx-push-url | Update browser URL | hx-push-url="true" |
hx-select |