When everything starts to look the same
Jun 8, 2026 · 3 min read

Lately every new app I open feels familiar. The same rounded cards, the same grays, the same modal, the same empty-state illustration. None of them is bad on its own. The trouble is that they all start from the same place, so they all end up in the same place.
There is a reason for this. Most teams now begin with a ready-made component kit and an AI agent. The kit is good, the agent is fast, the result is on screen in seconds. But that result is also the starting point for thousands of other screens. The stronger the default, the quieter the long tail of products gets.
The invisible cost of a default
When you accept a ready-made default, you are still making a decision, you just are not the one making it. The softness of a component's corners, the softness of its shadow, how a button feels: someone chose all of that for you. In most places that is fine. A settings screen does not need to be the most original settings screen in the world.
The cost shows up where the product is supposed to carry its character. There, the default takes more than it gives back for the speed: the small difference that explains why the product exists at all.
A default is a starting point, not a destination.
Why I build it myself
On my own site I build the interface by hand in Nuxt instead of pulling it from a kit. The colors are a few variables in main.css: --v2-ink, --v2-gold, --v2-hairline. The card corners are not plain rounded rectangles, they are squircles. The icons are not static, they breathe with Lottie. None of this is revolutionary. But all of it is my decision, and the sum of it makes the site mine.
I do not do this to make things harder. When you build it yourself you feel the pull of the default physically. The cost difference between leaving a component as it is and spending two hours bending it toward yourself is very clear. That is exactly why you decide, on purpose, where to spend your energy, because spending it actually costs something.
The originality budget
You cannot make everything original, and trying to is a waste. Here is what works for me: originality is like a budget. It is limited, so I save it for the two or three places that carry the product's character. Everywhere else I choose the calm, the predictable, the familiar.
On Vibehaus I built the system first and then built the core sections on top of it myself. Most screens are deliberately ordinary. But the few moments that are the heart of the product, the places where I poured the budget, stand apart from everything else. If I had tried to make every screen equally special, none of them would have been.
When to break the default
In practice the only question I ask myself is this: will someone using this screen remember which product it belongs to? Where that does not matter, the default is fine. Where it matters, I spend the effort it needs, because the opposite quietly makes every product look like every other one.
AI can speed this decision up, but it cannot make it for you. The agent brings you ten good starting points. Deciding which one is your product is still your job. The real design begins where the kit ends.
Enjoyed this, or want to argue with it? Let's talk.
Get new posts by email
Occasional, only when something is worth writing down. No spam.

