F13_ the missing key · thirteen theses on the interface ENGINE → .MD ↓

There is no excuse to ship lame UI in 2026

I have been looking at the same screen for two years. A sidebar collapsed to icons, a card grid, twelve pixels of radius, a shadow so faint it may as well be an apology. The gray is #71717A. It is always #71717A.

I have seen this screen belong to a logistics company, a legal startup, a rail freight platform, a mental health app — four of them described to me as category-defining. I could not tell them apart in a screenshot test. Neither could you. This is a uniform.

The engineering was the hard part, and the engineering is finished. The surface is the only part a human ever touches, and we have left it to autocomplete.

Thirteen theses. The horror persists.

1. The excuse is gone.

A custom component used to cost a sprint. It now costs an afternoon. Every constraint that once justified the default — no budget, no engineer, no time — has been dissolved by the same tools you are using to ship the defaults. Beige is no longer a limitation. Beige is a decision, made by a person, on purpose, and that person is you.

2. The horror persists, and it has an address.

The enemy is the bleak basicness of B2B SaaS. The vibecoded dashboard. The seed-stage product that looks exactly like the Series C product that looks exactly like the abandoned side project. Not ugly — worse. Unmemorable. Ugly can be loved. Nobody has ever loved a thing they could not remember seeing.

3. The sameness is genetic, not lazy.

They look alike because they are one organism. The same four foundation models. The same three clouds. The same component library, the same utility classes, the same defaults, and models trained on screenshots of each other, converging harder every generation. The tools look like separate mushrooms after rain. Underground it is one mycelium, and it is feeding all of you the identical thing.

Understand what this means: you did not choose sameness. You inherited it. Which is worse, because you never noticed, and you cannot fight a thing you cannot see.

The largest organism on earth is a fungus in Oregon that kills the forest as it spreads. Monoculture is a network strategy. Difference has to be chosen against the grain of the substrate.

4. The interface is the organism's only visible organ.

No one experiences the weights. No one experiences the cluster. The fruiting body is the entire encounter — the whole of what a human will ever know about the intelligence underneath. We have collectively decided that this one part does not require thought. This is the single most expensive mistake in the industry right now.

5. Contrast is law, not craft.

I will not argue this one. Half of what ships cannot be read by the person it was shipped to. Not dislikednot seen. WCAG is not a nice-to-have, not a Q4 accessibility sprint, not a badge for the marketing site. It is the minimum condition of the thing existing at all.

And it should not be my job to catch it. Every generation tool in this ecosystem should refuse to emit failing contrast the way a compiler refuses to emit a syntax error. Hardcode it. There is no argument on the other side of this. There has never been one.

6. A chat box is not adaptation.

Putting a text input on the page is not personalization, not intelligence, and not a product. It is the laziest possible gesture toward both — the modern equivalent of declaring that everything is a webpage. Adaptive to basic, perhaps.

The model adapts to every turn of the conversation. The interface around it has adapted to nothing since 2022.

7. Day four hundred must not look like day one.

The interface should learn the user the way the model learns the thread. Chrome recedes as competence grows. Density climbs. Scaffolding built for the novice dissolves for the expert who has not needed it in months. Light and dark mode is not adaptation — it is two states, chosen once, by a person guessing at the weather.

8. Adapt to the mode, not to the identity.

The same human at 9am triage is a different user than that human at 11pm deep work. Adapting to who someone is is surveillance wearing a helpful face. Adapting to what they are doing right now is attention, and attention is the only form of care an interface can actually offer.

9. Adapt the periphery. Never the primitives.

Here is the constraint, stated honestly, because a manifesto that admits nothing convinces no one: interfaces that move under your hands are hostile. Muscle memory is a real asset and it is trivially destroyed. So adapt the edges — density, disclosure, emphasis, defaults, sequence. Never the anchors. Never the thing the hand already knows how to find.

Adaptation without this line is just instability with a good publicist.

10. Return the right to deface.

We had Winamp skins. MySpace profiles held together with stolen CSS. LiveJournal layouts, custom cursors, XP themes, decorated journals that looked like their owners because their owners built them. Then we traded all of it for brand consistency, and brand consistency has only ever benefited the brand.

Ownership feels like the right to ruin something. We stopped shipping homes and started shipping rentals, and then we wondered aloud why retention was soft.

11. Density is respect.

Bloomberg. Ableton. Figma. Every professional in every field earns the right to more information on screen, and whitespace-as-luxury infantilizes people who are extremely good at their jobs.

I am not against minimalism. I am against emptiness pretending to be minimalism. Negative space is a setup — room to grow into, a clearing where discovery happens, potential held open on purpose. That is a gift. Cookie-cutter blankness is not restraint. It is the absence of a decision, wearing restraint's clothes.

12. Latency is a material.

Waiting is not an error state. It is the moment the user is most aware they are dealing with something that thinks, and it is currently a visual desert with zero innovation in it.

A skeleton is fine as a skeleton — a base to build individuality on top of. Nobody built on top. The gray bars pulse in every product on earth and say nothing about what is being computed, how long it will take, or what is happening down in the mycelium. Beige, in motion.

13. Design for a thing your users believe is alive.

Whether these systems are anything is a question above my pay grade and yours. What is not in question, because it is measurable, is that users humanize them anyway. People say please. People say thank you. People grieve model deprecations.

That makes anthropomorphism a design lever, and right now it is an unregulated one — pulled almost exclusively toward engagement. Sycophancy. Manufactured intimacy. Warmth as a retention mechanic.

So: if a user will treat it as alive, the interface owes them the truth about what it is. Honest uncertainty. Visible memory. Legible reasoning. Real undo. The refusal to perform a feeling in order to hold attention.

This is the whole frontier, and it is empty, and everyone is off building another purple gradient.

A note on Dieter Rams

Ten principles. I have used them for years and I am not knocking the man off his shelf.

But read what he was writing about: objects that are finished when they ship. A radio does not learn you. A shelving system has no memory, no uncertainty, no reasoning to disclose, no opinion about what you did last Tuesday. Rams' unstated axiom is that the artifact is complete at manufacture and the human adapts to it.

Everything in this document inverts that axiom. The artifact is not an object. It is a relationship, unfinished at ship, adapting on both sides.

Good design is as little design as possible is a true sentence about a radio. It has been used, for fifteen years, as permission to ship nothing at all.

The promise.

I am going to build these. Publicly, in demos, in products, in whatever room will have me — until the people building the engines look at the surface and understand that this is where the whole thing was decided.

Steal any of it. Sign it or don't. Just stop shipping the gray.

— Kate Huezo

prior work — figma-to-code research

roadmap →