Tailwind is more popular than it has ever been, and its company just laid off most of its engineers. Stack Overflow still holds the answer to almost every question I have ever googled, yet almost nobody asks it anything new. Both stories have the same cause, and I think the long-term cost lands on all of us, not just them.

The Destination Model

For about fifteen years the deal on the developer web was simple: you give away something useful on a website, developers come to read it, and some of them stick around long enough to find the thing you actually sell.

Tailwind ran this play as well as anyone. The framework is free and the docs are some of the best around, and those docs were where you stumbled onto Tailwind Plus, the paid component and template library that funded the whole operation. Stack Overflow ran its own version, where the questions and answers cost nothing and the traffic paid for ads, job listings, and the pitch for Stack Overflow for Teams.

None of it worked unless people showed up. The website was the storefront, and the docs were the window display.

What Broke

In January 2026, Adam Wathan disclosed that Tailwind Labs had laid off three of its four engineers, and he did it in a GitHub comment, of all places, replying to a pull request that would have made the docs easier for LLMs to read. His numbers were blunt. Docs traffic was down about 40% from early 2023 even as Tailwind’s usage kept climbing, and the docs, he wrote, were the only way people found out about the commercial products. Press reports put the revenue drop near 80%.

LLMs aren’t the whole story there. Tailwind Plus sells as a one-time purchase, so a lot of the people who wanted it already own it, and free libraries like shadcn/ui give away Tailwind components too. But the docs were the one channel Tailwind had for reaching new buyers, and that channel shrank by almost half.

Stack Overflow’s slide started long before ChatGPT. Questions peaked around 2014, and a moderation culture that closed new questions as duplicates pushed plenty of people away. LLMs didn’t start that decline; they removed the last reason to post. New question volume has fallen to a fraction of its peak, and while the exact numbers depend on who is counting, every count points the same way.

The mechanism is not mysterious. You ask Claude or Copilot how to center a div with Tailwind, it answers right in your editor, and you never load tailwindcss.com or see the Plus banner. The usage still happens. The visit doesn’t.

The Snowball

Here is the part that worries me more than any one company’s revenue.

Good human docs take real effort. Someone has to decide what order to explain things in and write the example that finally makes the concept click, and people do that work because readers show up and some of those readers turn into customers, contributors, or at least people who file a decent bug report.

Take the readers away and the reason to do the work gets weaker. Tailwind now has one engineer, and I don’t expect the docs to get better from here. Multiply that across every open source project whose docs ran on traffic, directly or not.

Not every project’s docs depend on traffic, and I want to be fair about that. Python, Postgres, and MDN have great docs and nothing to upsell, and plenty of maintainers write docs because docs drive adoption and adoption is the whole goal. Those docs will probably hold up.

The snowball hits two other groups. The first is commercial open source like Tailwind, where the visits paid for the writing. The second is the unpaid long tail: Stack Overflow answers, blog posts, the forum thread where a stranger explained the weird edge case that ate your whole afternoon. Nobody funded that writing. People did it because someone would read it, and that long tail, which is where most of us actually learned the edge cases, has the least protection of anything here.

Worse docs push more people toward the LLM, more LLM use means fewer visits, and fewer visits mean less reason to write for humans, so the ball keeps rolling downhill and picking up size. Some projects will lean into it and write only for machines, with an llms.txt file, an MCP server, and a thin page for the rare human who wanders in. I understand why. I just don’t think it ends well.

LLMs Don’t Teach You

I use these tools every day, and they make me faster at a job I already know well. When Claude writes something I can tell whether it’s right, but only because I spent years learning the hard way. That’s the catch. The tools multiply what you already know; they don’t build it.

To me, that’s the biggest failure of LLMs as a whole. Senior engineers get faster, while the next generation of engineers who think in systems and architecture never gets the chance to grow into it.

An LLM gives you the answer, and docs give you the model behind the answer, which is not the same thing at all. Ask a model to build a card component and you get something like this:

<div class="mx-auto max-w-sm rounded-xl bg-white p-6 shadow-lg ring-1 ring-slate-900/5 dark:bg-slate-800">
<h3 class="text-base font-semibold text-slate-900 dark:text-white">Title</h3>
<p class="mt-2 text-sm text-slate-500 dark:text-slate-400">Body copy.</p>
</div>

It works, and it looks fine. But if you never read the docs, you don’t know why ring-1 is there, how the dark: variant decides when to apply, or what happens when you nest this inside a parent that sets its own color. The first time it breaks in a way the model can’t guess, you are debugging a wall of class names you never chose.

Copying from Stack Overflow sounds like the same problem, but it wasn’t. You’d land on a question with six answers, where the accepted one was from 2011, the top-voted one said the accepted one was wrong, and a comment buried under both pointed out an edge case that broke them anyway. You had to read all of it, weigh it, and pick. Sure, sometimes you just took the one with the most upvotes. Even then you had seen the tradeoffs laid out, and some of it stuck. An LLM skips all of that and hands you one confident answer, with no competing options and no argument in the comments, so you never weigh anything and never learn how.

You can ask the model why, and it will explain. Most people don’t, because the default path is to accept the code and move on.

Reading the docs is slower, and that is sort of the point. The slow path is where you build the mental model that lets you fix things later. Skip it every time and you end up with a codebase full of code nobody on the team actually understands, including you.

LLMs Can’t Learn What Nobody Wrote Down

The second problem is quieter. Models learn from what people publish, and Stack Overflow answers, blog posts, and docs pages are a big part of what made today’s coding models good: they learned from humans explaining things to other humans.

So what happens when the humans stop explaining?

Tailwind v4 is a small preview. It moved configuration out of tailwind.config.js and into your CSS:

@import "tailwindcss";
@theme {
--color-brand: oklch(0.62 0.19 259);
--font-display: "Inter", sans-serif;
}

For a long time after the release, models kept suggesting the old JavaScript config file, because they had seen thousands of examples of v3 and almost none of v4. Tools that pull current docs into the model’s context, like Context7 or a docs MCP server, closed most of that gap. Look at what those tools fetch, though. They fetch docs a human wrote. Retrieval doesn’t replace the writing, it depends on it, and the writing is exactly what the snowball wears down.

Now scale that up. Somebody figures out a clever pattern or a better way to structure something, and if it only lives in their private chat with a model, the next model never sees it. The models stay frozen near the last moment people bothered to write things down in public, and we trade a living body of knowledge for a snapshot that slowly goes stale. There’s a darker version of this, where models train on half-finished code that other models wrote, but that’s a post of its own.

How They Turn Around

The companies are trying things, and most of those things keep the lights on. None of them, as far as I can see, stop the loop.

Stack Overflow licensed its data to Google and OpenAI. That brings in real money, and the contributors who wrote those answers are angry about it, with good reason. More to the point, an archive is only worth selling while it’s still growing, and once people stop asking new questions, the data you are selling is a museum.

Sponsorship is another path. If a framework is infrastructure, the companies that build on it should pay for it, and I like this option the most because it funds the people who write the docs without making them chase page views. It also depends on a few large companies staying generous, and it rescues individual projects rather than the habit of writing for humans.

The third path is putting the product where the agent works: ship your paid components through a registry or an MCP server so the model can pull them in while it writes code. That’s smart business. It also gives up on the human reader entirely, because you get paid and the docs become an API.

None of these bring back the reason someone sits down and writes a great explanation for another person, and that’s the thing I want back.

Putting It Together

Tailwind and Stack Overflow are the clearest cases of a bigger shift, where businesses that made money by being a place developers visited are losing the visit even as their usage hits new highs. The fixes on the table can save a company. They don’t save the docs. Fewer readers lead to fewer human docs, which push more people to LLMs, which leaves us with fewer developers who understand their own code and fewer new ideas for the next model to learn from. I still think the best defense is boring: read the docs when you can, write things down in public when you figure something out, and if a project’s docs taught you something, find a way to pay for them. Do you still read the docs, or has the model become your docs? Tell me on Bluesky.