Fixing "AI" UIs
I help a lot of people get rid of the “AI-ness” in the UIs of their products.
Typically, they try to fix this by doing stuff like:
- Asking Codex / Claude Code to “improve the ui/ux”
- Adding various skills (e.g. frontend-design )
- Going to design websites (e.g. dribbble.com ) and using screenshots as reference
If anything, the approaches above often make the design worse.
I think this is largely because of 3 things happening together:
- (Current) LLMs are too proactive: The models tend to add stuff you didn’t explicitly ask for. This can make UIs feel “clunky” and over-engineered.
- Mode Collapse: As a result of various post-training methods (e.g. RLHF), LLMs can lose creativity and diversity that was previously there in the pre-training data.
- “AI-ness” not existing in a vacuum: I suspect that if you were a time traveler and showed someone in 2020 a design we now recognize as “AI Slop”, a lot of people would think that the design you’re showing them is not that bad; 1current “AI Slop” designs are (mostly) considered slop because they are overdone. This is similar to how immediately obvious it was when someone used Bootstrap .
To address these 3 issues, I propose we start thinking about using AI to build UI as a process similar to that of sculpting from a marble block: AI returns you an overly complex UI, and your job is to focus on deletions and refining, until what’s remaining has been uniquely shaped by your taste.
Of course, the initial marble block given to you still matters a lot; if it’s too large you’ll be spending unnecessary time chipping away; if it’s too small you won’t be able to create the design at all.

I say “(mostly)” because a lot of these designs are also bad for other vibe-coded symptoms like roundabout language or broken functionality. ↩︎