Tailwind has been the frontend holy grail, but some senior devs are ditching it. What happens when you leave the utility-first cult to write real CSS?

I was casually scrolling through Hacker News looking for some spicy tech debates when a 400+ point nuke dropped by the legendary Julia Evans (jvns.ca) caught my eye: "Moving away from Tailwind, and learning to structure my CSS". Wild, right?
While 90% of coding bootcamps out there are shoving Tailwind down newbies' throats like it's the ultimate silver bullet for frontend development, a seasoned dev just publicly announced she's escaping the utility-first matrix to embrace vanilla CSS.
So, what the hell is actually going on?
Let's be real, Tailwind changed the game. Slapping flex items-center justify-between p-4 bg-red-500 rounded-lg directly into your HTML feels like a superpower. No naming conventions, no context-switching between files. Just pure, unadulterated speed.
But hold up. According to the author, after riding the Tailwind high for a while, she realized a massive gap in her skill set: She didn't actually know how to architect CSS properly.
Here's the kicker—CSS isn't the dumpster fire it was 10 years ago. We now have CSS Variables, native Nesting (RIP SASS), insanely powerful Grid layouts, and Container Queries. Writing vanilla CSS has become shockingly elegant. The author realized that instead of turning her HTML files into unreadable alphabet soup (with class attributes as long as a CVS receipt), investing time in learning CSS architecture (like BEM, CUBE CSS, or modular components) pays off massively for long-term maintainability.
Unsurprisingly, this post triggered a massive turf war in the HN comments. From what I gathered, the community split into three very loud factions:
Honestly, all this keyboard-warrior energy boils down to one fatal developer flaw: treating frameworks like religions.
Tailwind isn't evil, and vanilla CSS isn't outdated. The only wrong approach is blindly following one tool while trashing the rest. Tailwind is a phenomenal tool for rapid prototyping and enforcing design tokens, but it trades separation of concerns for development speed (and leaves your HTML looking like a crime scene).
The survival lesson here? Don't be a "framework mechanic." You can absolutely use Tailwind to pay your bills, but you NEED to understand how CSS works under the hood. Don't be that dev who cries when they need to build a complex custom animation just because there isn't a Tailwind utility for it.
At the end of the day, write clean, optimized code. You don't want to blow your budget on expensive hosting just because your server is struggling to send megabytes of inline utility classes to the client.
Source: Hacker News