The shift from semantic hooks to utility classes
Tracing Tailwind CSS from Adam Wathan's 2017 experiment to its 2026 market dominance, this history explores how utility-first workflows achieved an 81% satisfaction rate and a 2.2 to 1 gain-to-loss ratio over Bootstrap.
Adam Wathan released the first version of Tailwind CSS on a late Halloween night in 2017. He started with a bunch of boilerplate code he copied between projects. His earlier workflow used semantic CSS where classes like .author-bio acted as hooks for styles. This approach made CSS depend on HTML structure, which meant his CSS was not reusable even if his HTML was restyleable. He decided to optimize for reusable CSS by naming classes after repeating UI patterns. He argued that naming classes based on content treats HTML as a dependency of the CSS, while content-agnostic classes treat CSS as a dependency of the HTML. He dismissed the idea of separation of concerns as a straw man, arguing that the real decision is about dependency direction. This shift toward utility-first components meant he could use the same styles for an author bio or an article preview without duplicating code or using @extend. He began working on Tailwind full-time in 2019 to build this tool. He prioritized design freedom and production performance.
A faster engine and the configuration change
Tailwind CSS v4.0 arrived in January 2025 with a reconfigured engine. Full builds run 5x faster than v3 and incremental builds run 100x faster. This version moves configuration from JavaScript files directly into CSS. The JIT compiler remains the default, parsing HTML, JSX, and Vue files to generate only the classes you use in your markup. This allows for arbitrary values like w-[137px] to be created on the fly. While Bootstrap 5.4 relies on selective imports to manage its 150 KB to 200 KB payload, Tailwind produces production-grade builds between 5 and 15 KB. The new engine also uses an oklch color palette instead of rgb for better consistency. It includes container queries and field-sizing out of the box. The framework uses a unified toolchain, so you no longer need to install autoprefixer or postcss separately. I find the move to CSS-only configuration frustrating because it eliminates the familiarity of the old JavaScript-based configuration files. Developers favor the 81% satisfaction rate of Tailwind over the 55% satisfaction rate for Bootstrap. This 26-point gap in satisfaction shows a clear preference for the utility-first model.
Market dominance in 2026
The industry moved from Bootstrap’s stock to Tailwind’s flow. Bootstrap holds 5,657,662 domains, but Tailwind has 2,787,808 domains and a much higher switching rate. In the last 90 days, 61,518 domains moved from Bootstrap to Tailwind while 28,282 moved the other way, which creates a gain-to-loss ratio of 2.2 to 1 for the framework. Tailwind commands 31.1 million weekly downloads, exceeding Bootstrap by 12.5x. Material UI remains a React-only library with 121,420 domains, and it does not compete with Tailwind’s framework-agnostic utility classes. Most companies using Tailwind build from scratch using modern stacks like Next.js or Astro. You already know that utility classes reduce naming fatigue. Software Development leads at 5.96% and IT Services at 5.84% among the Tailwind user base. The user base is young, with 70.16% of companies founded since 2010. Large organizations like IBM, Microsoft, and Samsung use it to build custom interfaces. The geographic distribution shows the United States at 29.83%, the United Kingdom at 7.83%, and India at 6.81%. This shift results in a 67% production bundle reduction compared to Bootstrap. Does the industry favor speed or stability?