Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Expert guide for HTMX 2.0+, Hypermedia-Driven Applications (HDA), server-side rendering with htmx attributes, Alpine.js integration, and modern HTML-over-the-wire patterns / Panduan ahli HTMX 2.0+, Hypermedia-Driven Applications, dan pola HTML-over-the-wire modern.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
<a name="english"></a>
Connects with: brainstorming, zero-to-prod-orchestrator, js-backend-expert, python-programming-expert, go-programming-expert, rust-programming-expert, tailwind-expert, design-system-architect, authentication-identity-expert, database-orm-expert, session-memory-manager.
Expert guide for building Hypermedia-Driven Applications (HDA) using HTMX 2.0+. Covers htmx core attributes (hx-get, hx-post, hx-swap, hx-trigger), server-side rendering patterns, partial page updates, WebSocket/SSE integration, Alpine.js companion patterns, and transitioning from SPA frameworks to lightweight hypermedia architecture.
hx-ws support for real-time bidirectional communication.hx-ext="sse" for live data streams.hx-swap="transition:true".hx-push-url and hx-replace-url.hx-target-error, hx-target-4xx, hx-target-5xx for error-specific rendering.HTMX has become one of the most starred JavaScript libraries on GitHub, driving a movement back to server-rendered applications with sprinkles of interactivity. Key ecosystem:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTMX App</title>
<!-- HTMX 2.0 -->
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
<!-- Alpine.js for client-side micro-interactions -->
<script defer src="https://unpkg.com/alpinejs@3.14.9/dist/cdn.min.js"></script>
<!-- Tailwind CSS -->
<link href="/styles.css" rel="stylesheet">
</head>
<body>
<!-- Application content -->
</body>
</html>
<!-- Clicking this button fetches HTML from server and swaps into #results -->
<button
hx-get="/api/search?q=flutter"
hx-target="#results"
hx-swap="innerHTML"
hx-indicator="#loading"
>
Search
</button>
<div id="loading" class="htmx-indicator">Loading...</div>
<div id="results">
<!-- Server returns HTML fragment, not JSON -->
</div>
Server response (returns HTML, not JSON):
<!-- /api/search returns this HTML fragment -->
<div class="result-item">
<h3>Flutter Expert Skill</h3>
<p>Cross-platform mobile development guide.</p>
</div>
<div class="result-item">
<h3>Dart Programming</h3>
<p>Type-safe language for Flutter apps.</p>
</div>
<input
type="search"
name="q"
placeholder="Search products..."
hx-get="/api/products/search"
hx-trigger="input changed delay:300ms, search"
hx-target="#search-results"
hx-swap="innerHTML"
hx-indicator="#search-spinner"
/>
<span id="search-spinner" class="htmx-indicator">⏳</span>
<div id="search-results"></div>
<!-- Display mode -->
<div id="user-name-1" hx-get="/users/1/edit" hx-trigger="dblclick" hx-swap="outerHTML">
<span>John Doe</span>
</div>
<!-- Server returns edit form on double-click -->
<form id="user-name-1" hx-put="/users/1/name" hx-swap="outerHTML">
<input type="text" name="name" value="John Doe" autofocus>
<button type="submit">Save</button>
<button hx-get="/users/1/display" hx-swap="outerHTML" hx-target="#user-name-1">Cancel</button>
</form>
<div id="product-list">
<!-- Products rendered server-side -->
<div class="product">Product 1</div>
<div class="product">Product 2</div>
<!-- Sentinel element — triggers load when visible -->
<div
hx-get="/api/products?page=2"
hx-trigger="revealed"
hx-swap="outerHTML"
hx-indicator="#load-more-spinner"
>
<span id="load-more-spinner" class="htmx-indicator">Loading more...</span>
</div>
</div>
<form hx-post="/api/register" hx-target="#form-container" hx-swap="outerHTML">
<div>
<label for="email">Email</label>
<input
type="email"
name="email"
hx-post="/api/validate/email"
hx-trigger="blur changed"
hx-target="next .error"
hx-swap="innerHTML"
/>
<span class="error"></span>
</div>
<div>
<label for="password">Password</label>
<input type="password" name="password" />
</div>
<button type="submit">Register</button>
</form>
<div hx-ext="ws" ws-connect="/ws/notifications">
<div id="notifications">
<!-- Server pushes HTML fragments via WebSocket -->
</div>
</div>
<div hx-ext="sse" sse-connect="/events/stream">
<div sse-swap="message" hx-swap="beforeend">
<!-- Each SSE event appends HTML fragment -->
</div>
</div>
<!-- Alpine.js handles client-side state, HTMX handles server communication -->
<div x-data="{ open: false }">
<button @click="open = !open">Toggle Menu</button>
<nav x-show="open" x-transition>
<a hx-get="/dashboard" hx-target="#main" hx-push-url="true">Dashboard</a>
<a hx-get="/settings" hx-target="#main" hx-push-url="true">Settings</a>
</nav>
</div>
<main id="main">
<!-- Page content swapped by HTMX -->
</main>
Express.js (Node.js):
app.get('/api/products/search', (req, res) => {
const { q } = req.query;
const products = searchProducts(q);
// Return HTML fragment — NOT JSON
res.send(products.map(p => `
<div class="product-card">
<h3>${p.name}</h3>
<p>$${p.price}</p>
</div>
`).join(''));
});
FastAPI (Python):
from fastapi.responses import HTMLResponse
@app.get("/api/products/search", response_class=HTMLResponse)
async def search_products(q: str):
products = await product_repo.search(q)
html = "".join(
f'<div class="product-card"><h3>{p.name}</h3><p>${p.price}</p></div>'
for p in products
)
return HTMLResponse(content=html)
Go (net/http + html/template):
func searchHandler(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query().Get("q")
products := searchProducts(q)
tmpl := template.Must(template.ParseFiles("templates/product-list.html"))
tmpl.Execute(w, products)
}
| Use Case | HTMX | React/Vue SPA |
|---|---|---|
| Content sites with dynamic sections | ✅ Ideal | ⚠️ Overkill |
| Admin dashboards | ✅ Ideal | ✅ Also good |
| E-commerce product listings | ✅ Ideal | ✅ Also good |
| Real-time collaborative editors | ❌ Use SPA | ✅ Ideal |
| Complex client-side state (drag-drop, canvas) | ❌ Use SPA | ✅ Ideal |
| SEO-critical pages with interactivity | ✅ Ideal | ⚠️ Requires SSR |
hx-swap="outerHTML" — Prefer innerHTML to avoid losing event listeners on the target element.hx-indicator — Users need loading feedback. Always show a spinner.hx-push-url — Enable URL updates for browser history and shareable links.<a name="bahasa-indonesia"></a>
Terhubung dengan: brainstorming, zero-to-prod-orchestrator, js-backend-expert, python-programming-expert, go-programming-expert, rust-programming-expert, tailwind-expert, design-system-architect, authentication-identity-expert, database-orm-expert, session-memory-manager.
Panduan ahli untuk membangun Hypermedia-Driven Applications (HDA) menggunakan HTMX 2.0+. Mencakup atribut inti htmx (hx-get, hx-post, hx-swap, hx-trigger), pola rendering server-side, pembaruan halaman parsial, integrasi WebSocket/SSE, pola pendamping Alpine.js, dan transisi dari framework SPA ke arsitektur hypermedia ringan.
HTMX bekerja dengan mengirim request HTTP dan menerima fragmen HTML (bukan JSON). Server bertanggung jawab merender UI. Browser hanya mengganti (swap) bagian halaman yang berubah.
Atribut inti:
hx-get / hx-post / hx-put / hx-delete: Mengirim request HTTP.hx-target: Element mana yang akan di-update dengan respons.hx-swap: Cara memasukkan respons (innerHTML, outerHTML, beforeend, afterend).hx-trigger: Event yang memicu request (click, input changed delay:300ms, revealed).hx-indicator: Element yang ditampilkan sebagai loading indicator.hx-push-url: Update URL browser untuk navigasi history.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Expert guide for intelligent model cascading and routing — complexity-scored task routing from Flash/Haiku to Sonnet/Opus/Astra, dynamic escalation with quality gates, 40-60% token cost reduction while maintaining output quality / Panduan ahli untuk kaskade dan routing model cerdas — routing tugas berbasis skor kompleksitas dari Flash/Haiku ke Sonnet/Opus/Astra, eskalasi dinamis dengan gerbang kualitas, pengurangan biaya token 40-60% dengan kualitas output terjaga.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Expert guide for Affective Computing, emotional AI, and real-time sentiment analysis through native multimodal tokens (voice intonation and facial micro-expressions) / Panduan ahli komputasi afektif, AI emosional, dan analisis sentimen real-time melalui token multimodal native.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Expert guide for AI-assisted coding workflows — agentic code generation, multi-agent code swarms, self-healing CI/CD, automated PR review, spec-to-code pipelines, codebase knowledge graphs, and human-in-the-loop approval gates / Panduan ahli untuk workflow pengkodean berbasis AI — generasi kode agentic, code swarm multi-agen, CI/CD self-healing, review PR otomatis, pipeline spec-to-code, knowledge graph codebase, dan gate persetujuan human-in-the-loop.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Expert guide for autonomous Machine-to-Machine (M2M) agent settlement, dual-rail fiat & stablecoin micro-clearing, dynamic budget envelopes, and cryptographic agent invoicing / Panduan ahli settlement otonom antar-agen (M2M), kliring mikro dual-rail fiat & stablecoin, pagu anggaran dinamis, dan penagihan agen kriptografis.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Expert guide for long-term episodic memory integration (Mem0 v2, Letta/MemGPT, Zep v2), memory tier architecture, pgvector HNSW storage, and unified context management for autonomous AI agents / Panduan ahli untuk integrasi memori episodik jangka panjang (Mem0 v2, Letta/MemGPT, Zep v2), arsitektur tier memori, penyimpanan pgvector HNSW, dan manajemen konteks terpadu untuk agen AI otonom.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.