Why an AI-built product still feels unfinished
The feature set is fine. What is missing is four specific things, and none of them is the part AI is good at.
Jeremiah Simpson ·
A team ships a first version in weeks instead of quarters, puts it in front of real users, and gets feedback nobody quite knows what to do with. Not “it is missing X”. Something vaguer: it feels rough. It feels like a demo. One customer says it looks like an internal tool.
That feedback is accurate and it is not about features. It is almost always the same four things, and they are the four a generator has the least reason to produce.
1. Nothing on the screen is more important than anything else
Generated layouts are even. Every card the same weight, every heading the same size, every button equally loud. That is not a style problem; it is the absence of a decision. Someone has to say what this screen is for, and then make one thing win. A person reading an even screen has to do that work themselves, every time, and the tax on that shows up as “confusing” long before anyone can point at a cause.
2. The empty and error states were never drawn
You prompt for the screen, so you get the screen: populated, correct, the happy path. But a new customer meets the empty version first, and an unlucky one meets the error. Those two states do more to set expectations than the populated view ever does, and in most AI-built products they are whatever the framework does by default, which is nothing.
3. The edge cases nobody thought to ask for
A generated interface handles the inputs you imagined. Real data is less considerate.
- The list with four hundred rows, and no way to find anything in it
- The name that is forty characters long and breaks the row it sits in
- The payment that fails at the wrong moment, in a flow with no way back
- The customer on a phone, on a train, on a connection that drops
None of these is hard to design for. They are hard to remember, which is exactly the kind of work that gets skipped when the drafting is fast.
4. There is no system underneath
This is the expensive one, and it compounds. Without tokens, components and rules, every new screen is a fresh negotiation: what spacing, which grey, does this button look like the one two screens back. For a while the answer is “close enough”. Then you have forty screens, six greys, and a team that argues about padding in code review.
A design system is not a style guide nobody reads. It is the thing that lets an engineer build a screen a designer never drew and have it come out right.
So is AI the problem?
No, and we would be poor witnesses if we said otherwise. We use the same tools every day — exploring twenty directions in the time three used to take, scaffolding the code under a build. What they do not do is decide. They have no taste of their own and no stake in whether the work lands.
Generating and finishing are two different jobs. The first one got dramatically cheaper, which is genuinely good news. The second one did not, and pretending otherwise is what leaves a working product feeling like a prototype.
If that is where yours is, send it to us however rough it is. We will tell you which of the four is actually costing you — and whether it is worth paying anyone to fix yet.