Why Senior Devs Are Quietly Walking Away From Tailwind
A few years ago, suggesting you didn’t use Tailwind in a frontend channel was a good way to get called a dinosaur. In 2026, the vibe has shifted. Senior engineers on Hacker News and X are openly admitting they’ve gone back to “boring” CSS methodologies — and they’re not embarrassed about it. Something is happening.
The Tailwind Honeymoon
Tailwind’s rise was nothing short of meteoric. Type flex items-center justify-between p-4 rounded-lg shadow-md, and you had a passable UI before your coffee got cold. No naming agonized over. No separate stylesheet to babysit. Vercel shipped it as the default for Next.js. Remix templates leaned in. shadcn/ui made it cool again.
For solo developers and lean startups, it was genuinely liberating. You could build a decent-looking SaaS landing page without ever hiring a designer. The friction of “what do I name this class” — which had quietly slowed teams down for a decade — just evaporated.
Then the Codebase Hit Six Months Old
Here’s the moment most teams describe as the turning point. You open a component you wrote half a year ago and find this:
<div className="flex flex-col md:flex-row items-center md:items-start justify-between gap-4 md:gap-8 p-4 md:p-6 lg:p-8 rounded-lg md:rounded-xl bg-white dark:bg-gray-800 shadow-sm hover:shadow-md transition-all duration-200">
And you realize you’ve copy-pasted some variation of this into forty other components. The complaints cluster into three buckets.
First, markup becomes unreadable. The semantic structure of HTML gets buried under a wall of utility classes. You can’t scan a component and understand what it is anymore.
Second, the @apply trap. The moment you reach for @apply to DRY things up, you’ve reinvented a stylesheet — just with extra steps and worse tooling. Multiple engineers on HN have pointed out the obvious: if you’re going to write CSS, write CSS.
Third, design system friction. Managing tokens through tailwind.config.js works until your design team wants real systematic control. Then you’re spelunking through plugin APIs to do what custom properties handle in five lines.
What People Are Returning To
The interesting part isn’t that devs are leaving Tailwind. It’s where they’re going — not to inline styles, not to styled-components, but back to disciplined CSS architecture.
BEM is having a quiet renaissance. .card, .card__title, .card--featured — boring, predictable, and you can read the DOM at a glance. CSS Modules scope styles per component without runtime overhead. And type-safe options like Vanilla Extract and Panda CSS are pulling in the React crowd that wants compile-time guarantees without the bundle cost of CSS-in-JS.
The bigger shift is native CSS finally being good enough. Container queries shipped everywhere. :has() is stable. Nesting works without a preprocessor. Custom properties handle theming, dark mode, and design tokens with zero framework overhead. A growing number of devs are looking at their package.json and asking: do I actually need any of this?
So Is Tailwind Dead?
No, and anyone telling you that is selling something. Tailwind is still the right call for rapid prototyping, small teams, and projects where shadcn/ui covers 80% of your UI needs. The productivity ceiling is real.
What’s changed is the conversation. Engineers have stopped treating Tailwind as a default and started treating it as a choice. A 50-person engineering org maintaining a product for five years has different constraints than a two-person startup shipping an MVP next week. The mature take — and the one gaining traction — is that a thoughtful CSS architecture outlasts a thousand utility classes when the timeline gets long enough.
The Pendulum Always Swings
Frontend has always oscillated. Stylesheets → CSS-in-JS → utility-first → back to structured CSS. The lesson isn’t that Tailwind was wrong. It’s that how you’ll maintain this code in three years is a more interesting question than which framework is trending this quarter.
Where does your project sit on that timeline? If you’re optimizing for ship-it-by-Friday, Tailwind still wins. If you’re building something you’ll still be debugging in 2029, the boring answers might deserve a second look. Tools don’t make that call — your roadmap does.
Deepen your perspective
Comments
Loading comments...