Quick Comparison
| HTMX | React | |
|---|---|---|
| Approach | HTML attributes | JavaScript components |
| Bundle size | ~14KB | ~40KB + your code |
| Server | Returns HTML fragments | Returns JSON (usually) |
| Complexity | Very low | Higher |
| Interactivity | Good for most apps | Unlimited |
| Learning curve | Very low | Moderate |
When to Use HTMX
- Server-rendered apps (Django, Rails, Laravel, Go)
- CRUD apps, admin panels, dashboards
- You want simplicity over complexity
- Your team is stronger in backend than frontend
When to Use React
- Highly interactive UIs (real-time collaboration, complex forms)
- You need a mobile app too (React Native)
- Rich client-side state management
- Complex component composition
Key Differences
Mental Model: HTMX extends HTML — you add attributes like hx-get, hx-post, hx-swap to make elements dynamic. React replaces HTML with a JavaScript component tree.
Server: HTMX servers return HTML fragments. React servers typically return JSON that the client renders. HTMX is simpler but means your server does more rendering work.
When HTMX Falls Short: Real-time collaborative editing, complex drag-and-drop, offline-first apps, anything that needs heavy client-side state.
Verdict
HTMX is perfect for the 90% of web apps that don’t need React’s complexity. If you’re building a content site, admin panel, or CRUD app, HTMX with a server framework is simpler and faster to build. React for genuinely complex interactive UIs.