The Incredible Overcomplexity of the Shadcn Radio Button
Well, this is horrifying.
- Install Stuff Indiscriminately From npm
- Pick a Framework Before You Know You Need One
- Always, Always Require a Compilation Step
Well, this is horrifying.
SPAs were a clever solution to a temporary limitation. But that limitation no longer exists.
Use modern server rendering. Use actual pages. Animate with CSS. Preload with intent. Ship less JavaScript.
This is a really thoughtful look at the evolution of CSS and the ever-present need to balance power with learnability.
Semantic HTML? Optional. Server-side rendering? Rebuilt from scratch. Accessibility? Maybe, if there’s time. Performance? Who cares, when you can save costs by putting loading burdens onto the user’s device, instead of your server?
So gradually, the web became something you had to compile before you could publish. Not because users needed it. But because developers wanted it to feel modern.
Everything’s optimised for developers – and hostile to everyone else.
This isn’t accidental. It’s cultural. We’ve created an industry where complexity is celebrated. Where cleverness is rewarded. Where engineering sophistication is valued more than clarity, usability, or commercial effectiveness.
“We’ve stripped React out of our highest-traffic user flows and replaced it with vanilla JavaScript using small, focused libraries for specific needs,” said the CTO of a streaming service. “Our page load times dropped by 60% and our conversion rates improved by 14%.”
A question via email…
It’s almost as though humans prefer to use post-hoc justifications rather than being rational actors.
Is your design system really a system …or is it more like a collection of components?
The importance of revisiting past decisions. Especially when it comes to the web.
Two JavaScript frameworks—Svelte and Astro—share a philosophy, but take subtly different approaches.