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 var declarations vs only 2 let statements and 3 const
  • Entire HTMX library is single 4,000-line JavaScript file
  • Heavy use of window namespace pollution - more window. calls than let and const combined
  • 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