GenUI vs. Vibe Coding: Who's Designing?
Source: Kate Moran; Nielsen Norman Group article · 2026-03-27
Since Andrej Karpathy coined the term “vibe coding” in early 2025, the concept has taken over the conversation about AI and interfaces. Describe what you want; the AI builds it. There are many variations of that concept, and all of them are relevant to the design community right now, as they impact both how our teams work, and the users they design for.
But vibe coding is not generative UI (genUI). The difference is about who makes the decision to build an interactive system or component. This distinction gets blurry in practice, and that’s exactly why it’s worth defining carefully. The line between them determines what we hold the AI accountable for: execution fidelity or design judgment.
Generative UI (genUI) refers to interfaces where the AI system decides to produce a visual or interactive element — the system initiates the design.
Vibe coding means that the user describes what they want and the AI builds it.
AI-assisted design means using AI-based tools within a professional design workflow — generating wireframes, prototyping variations, or exploring layout options as part of building a product for an end-user audience.
Either the AI decides a UI element would serve the user better than text, or the user explicitly asks the system to build something.
In genUI, the user asks a question or states a goal (either explicitly in chat or implicitly by their behavior in a product) and the system decides that the response should include one or more interactive elements (such as checkboxes, interactive data visualization, clarification widgets, or full-blown complex interfaces). The user didn’t request a checkbox. The AI made a judgment call that the experience would benefit from one.
That judgment call is the defining act of genUI. The system assessed the situation and determined that the best response would include one or more visual, interactive UI elements. This is a design decision, made in real time, by the AI.
Vibe coding works differently. The user initiates and directs the construction. For example:
“Build me a London trip planner app.”
“Create a dashboard for my expenses.”
“Make a quiz about European capitals.”
The user knows they want an interface and asks for one. The AI’s role is execution — translating the user’s intent into a working artifact. That’s valuable, but it’s a different kind of work.
Even within vibe coding, there’s a further dimension: how much does the user specify, and how much do they delegate?
This leaves the AI significant room to make structural and strategic choices — layout, interaction patterns, information hierarchy.
This version leaves little up to the AI system — it’s executing a designer’s vision. (Most people cannot, and would not try to, imagine or specify this level of detail to reach such an outcome.)
In both cases, the user initiated the construction. But the degree of design judgment the AI exercises varies enormously. This range of specification on the vibe-coding side of the line is why some people get confused by the distinction between vibe coding and genUI.
Vibe-coding enthusiasts believe that AI will let everyone build their own custom software for everything they need (this narrative was blamed for a big drop in software stocks in February). Why pay for Slack when your company can just generate its own version? Why subscribe to project-management tools when you can vibe code one that fits your exact workflow?
I think back to the hundreds of user-research sessions I’ve conducted and observed where I’ve seen firsthand how bad most people are at identifying and articulating what they want from a digital product or service. Experienced designers might find it easy to describe the interface they want to build. Most people do not.
Vibe coding assumes a user who can think in terms of apps, dashboards, and interaction patterns. That’s a meaningful prerequisite, and not one most people meet.
GenUI serves the rest. “Help me plan my trip” is a prompt anyone might type. If the system responds by generating a custom itinerary tool rather than a paragraph of text, someone who would never think to vibe code a trip planner still gets the benefit of an interface designed for their situation. That’s the promise of genUI — not that AI becomes a better code generator, but that it becomes a designer. One that makes the interface decision so the user doesn’t have to know they needed one, let alone try to envision and articulate what it should be (which is extremely hard for most people).
There’s also an argument for specialized software that the “build your own everything” narrative overlooks. Part of the value of a dedicated company building communication or project-management software is the institutional knowledge they accumulate — from years of user research, iterative refinement, and observing how the tool performs across thousands of different organizational contexts. LLMs don’t inherently have that depth baked in. The idea that every team will vibe code its own Slack replacement feels wasteful when the real value of those tools comes from design maturity that no ad hoc prompt can replicate.
This is where genUI carries a higher design burden than vibe coding. When the user specifies what they want, the AI is accountable for execution quality — does the thing work as described?
When the AI decides what to generate, it’s accountable for the design decision. Right now, if you leave design decisions up to an AI system, you tend to get generic-looking outputs — random layout choices that don’t quite make sense, content errors, visual complexity without clear purpose. GenUI’s success will be measured not by how impressive the generated elements look, but by how well the AI reads the moment.
In the near future, we’ll start to see the AI customizations moving behind the UI to accelerate and customize interfaces without the visual sparkle icons or beta feature callouts.
Lines of inquiry this paper opens 24
Research framings built by reading the notes related to this paper — the questions it feeds into.
How does interface design shape effectiveness in human-AI collaboration?- How does participatory design differ from co-design in granting stakeholder agency?
- Should design systems prioritize verbs and actions over static UI elements?
- Do users actually find intuitive modalities easier to learn than direct controls?
- How does vendor-prescribed design doctrine compare to frameworks derived from user research?
- How does Nielsen's orchestration surface layer formalize invisible design work?
- What does generative UI design space split into beyond audience and timeframe?
- What are the four dimensions that define generative UI design space?
- What dimensions organize the design space of generative user interfaces?
- Why do narrower taxonomies for specific GenAI systems nest within this broader framework?
- How do trade-offs between malleability and specification vary across GenAI application domains?
- How does the AI deciding versus the user requesting change genUI's value proposition?
- How do users currently learn to work with unpredictable generative outputs?
- What role does generative variability play in shifting how users specify system behavior?
- What control and engagement patterns emerge in generative UI design?
- Do shipped AI products consistently mix generative UI and vibe coding within one session?
- Does adding UI widgets create more friction than prompt and example curation alone?
- What trade-offs emerge when generated UIs add clarity but reduce flexibility?
- Could generative UI frameworks shift toward more intuitive interaction modalities?
- Why do users prefer generated interfaces over conversational chat in research studies?