3
2 Comments

Vibe-coded apps share one bug. It’s not the model.

Been looking at AI-built apps shipped on IH lately: Claude, Lovable, v0, Cursor, Bolt.
Same pattern keeps showing up.
It’s not the model, It’s the interaction layer.

Most common version:
User clicks “Generate” or “Submit” or “Run.”
The button doesn’t change.
No spinner.
No label swap.
No disabled state.

Two seconds pass.

User clicks again.

Now the request fires twice.
On a slow connection, the flow breaks.
The user blames the AI and leaves.

I keep seeing this exact bug sitting on the primary CTA.

The fix is tiny:
disable while pending, swap the label to “Generating…”, add a spinner.

Standard async pattern.
But a lot of AI-building tools still ship these interactions raw.

Three other behavioural patterns I keep seeing in vibe-coded apps:

  • AI output with no undo → users feel stuck the moment generation goes wrong
  • Missing citations/confidence cues on factual answers → trust erodes on every reply
  • Chat-only UI for tasks that really want a form → abandonment shows up fast

None of these are “the model is dumb.”
All of them are the interaction layer getting skipped.

Curious for people who’ve shipped with Lovable / v0 / Cursor / Bolt:
What UX issue did you only notice after launch that the tool didn’t warn you about?

I’m building something around this. Not pitching today — but if you want me to look at your app and send back what I notice, reply here or DM.

Just currently obsessed with AI-product UX.

on May 28, 2026
  1. 1

    The undo gap is the one I'd put first. Nothing kills trust faster than an AI doing something you can't reverse in one click. Most vibe-coded apps inherit chat-UI patterns where the only undo is "send another message", which is the worst kind of undo because it widens the surface area instead of narrowing it. Connected observation from the productivity-app world: habit apps figured out a decade ago that reward-on-close beats reward-on-add. AI tools are still in the reward-on-add era, which trains users to start things and then avoid the app once the output looks weird. Building the close-loop (clear undo, confidence cues, exit ramps) is the same problem with a different name.

  2. 1

    This is a sharp observation because most people blame the model when the real failure is the product layer around the model.

    The async state example is small, but it points to a bigger issue: AI-built apps often generate capability before they generate trust. The user needs to know what is happening, whether the action worked, whether they can undo it, and whether the output is safe to rely on. Those details decide whether the product feels usable after the first “wow” moment.

    If you are building around this, I’d be careful to frame it bigger than “UX feedback for vibe-coded apps.” The stronger category is AI product quality: interaction states, trust cues, recoverability, confidence signals, and workflow fit before launch.

    That is also where naming will matter if this becomes a product. A name like Xevoa .com would fit that broader direction better because it feels like an AI workflow/product layer, not just a critique or audit service.

    The insight is strong because it is clearly in the founder’s favor: better UX makes the same AI product feel more reliable without changing the model.

Trending on Indie Hackers
I built a WhatsApp AI bot for doctors in Peru — launched 3 weeks ago, 0 paying customers, and stuck waiting for Meta to approve my app User Avatar 52 comments Fixing broken scrapers instead of working on my actual product. So I made it my problem. User Avatar 44 comments I built an open-source PII masking layer for LLM APIs — early traction, looking for design partners User Avatar 33 comments How to see revenue problems before they get worse User Avatar 28 comments From broke and burned out as a PM, to launching my SaaS and optimizing my health User Avatar 27 comments I kept starting projects and dropping them. So I built a system that wouldn’t let me User Avatar 22 comments