Nobody Warned Us About This Part of AI
AI closed the gap between nothing and adequate. It never touched the gap between adequate and something people actually love using.

A few months ago I watched someone build a working app in about four minutes. They typed a sentence, and out came buttons, a database, a login screen. It worked. I clicked around, and it did what it was supposed to do. And I felt nothing.
That's the part nobody warned us about. We spent years worrying that AI would take away our ability to build. Instead it took away something smaller and stranger: the meaning of "finished." When anyone can produce something functional in minutes, functional stops being impressive:
It becomes the floor, not the ceiling.
Everything is competent now. Almost nothing is loved.
Here's a test. Think of a product you'd actually recommend to a friend, not because it does the job, but because using it makes you feel like someone thought about you specifically. Now think of how many products you've used this week that were fine, complete, bug-free, and utterly forgettable.
That gap used to be rare. Building something that worked at all took real effort, so the effort itself earned some goodwill. Now the effort is cheap. A model can scaffold a checkout flow, write the copy, pick a font pairing, and ship it before lunch. What it can't do is know that the checkout flow feels rushed, or that the copy is technically correct but reads like it was written by someone who's never actually been frustrated waiting for a refund.
That knowing is the whole game now. Call it taste, call it craft, call it whatever you want. It's the only thing left that separates "this works" from "this is good."
Why "it looks done" is the most dangerous sentence in software
I've started noticing a specific kind of trap. Someone generates an interface, it renders cleanly, the buttons are in the right places, and everyone in the room nods because it looks like a real product. Nobody asks what happens when the network drops mid-request, or what the empty state looks like on day one before a user has any data, or whether the error message assumes the user knows what an API is.
None of that shows up in a demo. It only shows up in use, weeks later, when someone's trying to cancel a subscription at 11pm and the form just... spins.
This is the part AI is genuinely bad at, not because the models are unsophisticated, but because absence is hard to generate. A model will happily produce a beautiful happy path. It has a much harder time noticing the thing that isn't there. Missing edge cases, missing empathy, missing the fifteen small decisions that separate a mockup from a product people trust with their money. Those are holes, and you can't prompt your way into noticing a hole. A person has to go looking for it.
The ownership trap
There's a strange psychological wrinkle in all of this too. When you generate something in ten seconds, you'd think you'd hold it loosely, since you barely invested anything. The opposite tends to happen. People fall in love with their prompts. They typed the sentence, so surely the output is theirs, and if it's theirs it must be good, and if it's good why would they touch it further?
I've caught myself doing this. I generate a first draft of something, it's 80% of the way there, and I feel this pull to just ship it, not because it's actually ready but because I already sunk fifteen minutes into it and rewriting feels like admitting the fifteen minutes were wasted. That instinct is worth naming, because it's exactly backwards. A fast first draft should be the thing you feel the least attached to, not the most.
A rough way to check your own work
I don't think there's a clean formula for taste, but there are three questions I've started asking myself before calling anything done, and none of them are answerable by looking at a screenshot.
Would this survive someone having a bad day? Not the happy path user, sitting comfortably, following the tutorial. The person who's tired, in a hurry, and slightly annoyed already. Does the thing still make sense to them?
What did we choose not to build? This one's underrated. The instinct with AI is to add, because adding is now free. But a product crowded with every feature that seemed technically possible is worse than one with three features that were actually considered. Saying no to something is often the more skilled move, and it's the one AI has zero instinct for, because a model doesn't get tired of your feature list the way a person eventually should.
If I take away the branding, does this still feel like something a specific person cared about, or could it be anyone's product? Generic isn't a style. It's what happens by default when nobody made a call.
What's actually left for us to do
None of this is an argument against using the tools. I use them constantly, and they've made the boring 70% of most projects genuinely faster, which is not nothing. But the boring 70% was never where the love came from anyway. Nobody's ever recommended a product to a friend because the boilerplate was solid.
The part that's left, the part that was always the hard part even before any of this, is judgment. Knowing what "good" actually feels like from the inside. Being annoyed enough by small frictions in your own life that you refuse to ship them onto someone else. That's not a skill a model picks up by training on a trillion examples of other people's work, because it's not really a writing skill or a coding skill at all.
It's closer to empathy with extra steps. And it turns out that's the one thing that was never really about speed.