Summary by TwinMind · 25m 15s
Summary by TwinMind · 25m 15s
HTMX Sucks
HTMX Sucks
Theo - t3․gg
Theo - t3․gg
Introduction and Context
- Video creator reacting to satirical article "Why HTMX Sucks" posted on HTMX's own website
- Article written by Carson Gross (creator of Intercooler, HTMX's predecessor)
- HTMX gained popularity after "HTMX in 100 seconds" video hit 1.1 million views (2x more than creator's most popular video)
- Article represents "alarming turn of events" for web development future
Code Quality Criticisms
- HTMX codebase contains 463
vardeclarations vs only 2letstatements and 3const - Entire HTMX library is single 4,000-line JavaScript file
- Heavy use of
windownamespace pollution - morewindow.calls thanletandconstcombined - No modern JavaScript features or modules
- Violates separation of concerns by putting everything in one file
- Creator references Uncle Bob's clean code principles being violated
- Comparison to Dan Abramov's file structure guidelines (start with one file, split when annoying)
Build Tools and TypeScript Issues
- HTMX brags about having no build step while actually using ad hoc bash scripts
- Uses npm scripts with uglify and gzip compression
- Has TypeScript definition files but doesn't use TypeScript
- Authors resist TypeScript despite obvious benefits
- Commitment to "debuggable source code" deemed unrealistic
- Source maps work perfectly for debugging TypeScript (sarcastic)
- Recently adding JSDoc annotations as "tacit admission they screwed up"
Technology and Architecture Problems
- Uses "hypermedia" (pretentious term for HTML according to critique)
- HTML is 30+ years old - if it sucked, would have been changed by now
- HTMX copied/forked from Intercooler (created December 2013, over 10 years old)
- Also borrowed from pjax, unpoly, jQuery load
- jQuery syntax clearer than HTMX attributes ($.load vs hx-get, hx-target)
Component Ecosystem
- No components available for HTMX unlike React ecosystem
- React has MUI, Next UI, Chakra, Shadcn components
- Single Shadcn component has more JavaScript than entire HTMX runtime
- Users must figure out component integration with events themselves
- No off-the-shelf solutions available
Frontend/Backend Separation Concerns
- HTMX eliminates split between frontend and backend (presented as negative)
- Frontend/backend split "extremely successful for many companies"
- Allows frontend engineers to focus on UX, backend engineers on data access
- Coordination difficulties solved by GraphQL and server components
- Full-stack development described as "risky and frankly foolish bet"
- Backend engineers "terrible at making UI"
- HTMX website ugly compared to Linear, Million.js sites
Security Vulnerabilities
- Opens cross-site scripting (XSS) attack vectors
- Embeds behavior in markup, violating separation of concerns
- HTMX developers described as unsanitary (use Linux, Vim)
- Comparison to href attribute dismissed as "obviously different"
Job Market Reality
- Zero HTMX jobs available (2 found on Indeed: Microsoft, Oak Ridge National Laboratory)
- React has 13,758 jobs available
- Technology choice like "getting a tattoo but you can only have one"
- Primagen example: worked at Netflix, learned HTMX, became unemployed
- Companies can't hire HTMX developers (none exist)
- Boot camps teach React, creating large employee pool
API Duplication Issues
- Violates DRY principle (Don't Repeat Yourself)
- Mobile apps or third-party APIs require separate API creation
- Single backend API team more efficient than duplicated work
- Backend development complex (Kubernetes, scaling challenges)
Scalability Problems
- Won't scale beyond small applications
- Component model keeps code compartmentalized and testable
- React snapshot testing provides 100% code coverage
- GitHub example: started with HTMX-like technologies, moved to React for stability
- Single snapshot larger than entire HTMX file
Creator Behavior Concerns
- Carson Gross described as "unhinged"
- Unprofessional Twitter presence
- Posts essays he doesn't agree with on own site
- Website has memes section (unprofessional for serious framework)
- Allows anyone to become "CEO of HTMX"
- Steals memes and content from others
- Framework creator becomes "coworker" when adopting technology
