Jace Whitten
01

Craft · Aug 09, 2026 · 5 min read

The Slop Age

I went quiet for a while. Life, work, the usual. When I looked up, the web had gotten louder and somehow dumber, and my own site was a WordPress corpse rotting on a shared host with a broken padlock. Fitting. So I burned it down and hand-set a new one. This is the first thing I am writing on it, and I am going to be honest with you, because that is the only setting I have.

Here is what happened while I was gone.

The tooling leapt. Not walked, leapt. jQuery got quietly buried. React went from a curiosity to a religion to a legacy burden in the time it takes a kid to finish grade school. Node marched from 12 to 23 like it had somewhere to be. Every framework I trusted got rewritten, renamed, or absorbed. Build tools multiplied like rabbits. Leave the room for coffee and you came back to a new bundler and a migration guide.

And the UI kits. Oh, the kits. Somewhere along the way we decided taste was a dependency you could install. A thousand component libraries, each promising to save you from thinking, each producing the exact same rounded-corner, soft-shadow, everything-is-a-card website.

But the kits were a symptom. The real fashion was running from the platform itself. First we decided CSS was the enemy. Too global, too loose, too hard to scale, said the people who had not bothered to learn the cascade. So we did the only reasonable thing. We hid it inside JavaScript.

Styled-components, Emotion, the whole css-in-js parade. We wrote our styles in backticks, shipped a runtime to the browser to parse them, and paid the tax on every single render. And we called it progress, because at least the styles lived next to the component. We were so afraid of the cascade that we smuggled it into a template literal and told ourselves we had invented something.

Here is the punchline. While we were busy rebuilding CSS inside JavaScript, CSS grew up. Scoping. Nesting. Variables, container queries, cascade layers, :has(). Every single thing we fled to JS to get, the platform shipped for free. Native. No runtime, no build step, no bundle. A ten-year detour that ended exactly where it started, except now everyone was tired and the payload was fatter.

Then Tailwind. Same instinct, new outfit. This time the thing we ran from was naming things, so we stopped naming them, wrote flex items-center justify-between gap-4 directly in the markup, and called the reflex a design system. Utility classes crawled into every codebase like ivy.

I am not here to tell you Tailwind is bad. It is a fine tool. That is exactly the problem. It is a fine tool that everyone reaches for as a reflex, before they have asked the thing a single question. A framework is a loan against your taste. I said that in 2013 and I am saying it louder now, because the interest came due and nobody read the terms.

But the tools were never the threat. Here is the threat.

Mediocrity went free.

That is the real story of the last decade. It used to cost something to make a bad website. Time, at least. Now a machine hands you a competent, forgettable, warm-cream-and-a-serif landing page in nine seconds, and it looks like the other four million competent, forgettable landing pages the same machine made this morning. Purple gradient, acid-green pop, three feature columns with little icon circles. Slop. Confident, well-lit, perfectly-kerned slop.

I have seen where this goes. Everyone using the same brush, on the same canvas, painting the same nothing, and calling it a modern aesthetic. A monoculture with good contrast ratios.

So let me plant my flag.

I am not anti-machine. I built this site with one. I used AI, and Astro, and a tiny CMS, and I will tell you that plainly, because transparency is the whole game now. The question was never whether to use the tool. The question is who is holding it. The machine is a brush. A very good brush. But a brush has never once had a point of view, and it never will. The moment you let it choose the painting, you have already lost, and worse, you lost in a way that looks fine.

Tool for the right job. Artist over the tool. Every time.

Governance is just a fancy word for taste with the receipts. Use the machine, own the output, sign your name to it. If you cannot say why every choice on the page is there, you did not design it, you accepted a default. And defaults are where good work goes to die quietly.

Here is my prediction, and you are allowed to hate it.

The next five years split everyone into two rooms. In the first room, people use these tools to skip the part where you develop taste, and they produce an infinite, frictionless river of the same beige nothing, worthless precisely because it is free and everywhere. In the second room, a much smaller crowd uses the same tools to amplify a point of view they actually have. Those are the only people worth reading, hiring, or buying from. Taste becomes the last moat. The only one that does not commoditize.

I know which room I am in. I have been watching this longer than I have been writing about it. Call me the curator of a standard nobody asked me to keep. The golden, stupid, unreachable search for the perfect experience and the interface that deserves it. I am still looking. That is the job.

The site you are reading this on is the argument. Hand-set, opinionated, built with the machine and governed by the human. It will not look like anyone else's, on purpose.

Keep your hands off the trim.

DesignAICSSTailwindCraft