GenUI vs. Vibe Coding: Who's Designing?

Paper · Source
Human-Centered Design

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? Does generative AI shift knowledge work away from collaborative tasks? When do generative or structured interfaces outperform conversational chat? Does AI coding assistance improve productivity and code quality across experience levels? How do user perceptions and UI design drive consciousness attribution to AI? What makes decomposed prompts more reliable than monolithic instructions? How should GUI agents perceive and represent user interface structure?