arrow_backGuides / v0 by Vercel
Updated July 2026 14 min read Beginner to intermediate

v0 by Vercel — from a prompt
to a React interface in seconds

v0 is an AI-powered UI builder from Vercel: you describe a component or screen in plain language and get real React + Tailwind + shadcn/ui code, ready to copy into your project. In this guide: how v0 works, when to choose it over Bolt.new and Lovable, and prompts that produce professional UI.

React
+ Next.js
shadcn/ui
Components
Tailwind
Styling
Real code
no lock-in

What is v0 and why is everyone talking about it?

v0 (pronounced "v-zero") is a product of Vercel — the company behind Next.js. The idea is simple: you describe in natural language what interface you want, and v0 generates React code with Tailwind CSS and shadcn/uicomponents. You see a live preview, request changes in the conversation, and when satisfied — you copy the code or open a full Next.js project.

The fundamental difference from no-code tools: v0 does not lock you in. The output is standard code that every React developer knows — you can paste it into VS Code, Cursor or Windsurf and continue by hand. That is why v0 has become the fast scaffolding tool of thousands of developers: it saves the boring first 30% of every screen.

dashboard
Dashboards
login
Auth screens
table_chart
Tables & Forms
web
Landing Pages

v0 vs Bolt.new vs Lovable — which for what

The three tools sound similar, but they solve different problems. The key distinction: v0 focuses on UI and components, while Bolt.new and Lovable build a whole application including a Backend. Here is the comparison:

Criterion v0 by Vercel Bolt.new Lovable
SpecialtyUI & componentsFull-Stack in the browserFull-Stack + Supabase
OutputReact + shadcn/uiAny stack (Vite, Next, Astro)React + Supabase
BackendPartial (Next API)Yes, in the browserYes, managed
Best forDevs who want UI fastFast full prototypeA no-code business app
IDE integrationExcellent (copy code)Export to GitHubExport to GitHub
info
Rule of thumb for choosing

Want a nice component or screen to paste into an existing project? → v0. Want a Full-Stack prototype that runs instantly in the browser? → Bolt.new. Want a a business app with a DB and Auth without writing code? → Lovable. In practice, many developers use all of them — each for a different stage.

The v0 workflow — from prompt to code

Work in v0 is iterative: you start from a prompt, get a version, request improvements, and copy when satisfied. The four steps:

1
Describe the component
Write in natural language what you want — "a users table with search, sorting and status". You can also upload a screenshot or sketch (v0 reads images) and ask it to reproduce them.
2
Get a live preview + code
v0 shows an interactive preview alongside the full code. The components are built on shadcn/ui, so they are accessible (a11y), responsive and well-designed by default.
3
Request iterations
"Make the button green", "add a date column", "add dark mode". Each request updates the component within seconds and saves versions you can revert to.
4
Export to the project
Option A: an npx shadcn add command npx shadcn add that injects the component directly into the project. Option B: copy the code manually. Option C: open a full Next.js project on Vercel.
lightbulb
The trick: start from one Design System

To keep visual consistency, ask v0 at the start to define colors and typography, then in every following prompt write "use the same design system". This way all the screens look like one product and not a random collection of components.

v0 + shadcn/ui — why it is a winning combo

The secret behind the quality of v0's output is shadcn/ui — not a regular component library, but a set of components you copy into your project as open code you can edit. You own the code, there is no dependency on an external library's versions, and every component is fully customizable.

When v0 generates a component, it builds it from shadcn/ui primitives (Button, Dialog, Table, Card...). The meaning: the code you get already meets accessibility and responsiveness standards, and fits perfectly into any modern Next.js project.

Injecting a v0 component in one command

# v0 gives you a unique install command for each component
npx shadcn@latest add "https://v0.dev/chat/b/xxxxxxxx"

# the component + all its dependencies go into components/
# and are ready for immediate use in your Next.js project
accessibility_new
Built-in accessibility
shadcn/ui components are built on Radix UI — keyboard navigation, ARIA and focus handling correct by default.
edit
You own the code
The components are in your project, not in node_modules. Edit freely without breaking library updates.
palette
Easy theming
All the styling is based on CSS variables — change one color scheme and the whole system updates.

Prompts for UI — how to describe an interface that comes out right

The difference between generic output and precise output is the detail. v0 works best when you give it context, structure and states — not just "build a form".

Initial prompt — describe structure, data and states

close
Bad prompt

"Build me a dashboard"

check_circle
Excellent prompt

"Build an analytics dashboard with: a row of 4 KPI cards at the top (revenue, users, conversion, percentage change); a line chart of revenue over the last 30 days; a table of the 10 latest transactions with columns for name, amount, status and date. Add loading states (skeletons) and an empty state. Dark mode, responsive, Inter font."

Principles for a good prompt

What you can build in v0 in fifteen minutes

monitoring
A SaaS dashboard
KPI cards, charts, tables, a navigation sidebar and loading states — a full admin screen ready to connect to an API.
campaign
Landing Page
Hero, features, pricing, testimonials and a CTA — a responsive marketing page ready to publish.
dynamic_form
Complex forms
Multi-step forms with validation, conditional fields and a progress bar — including React Hook Form + Zod.
chat
An AI chat interface
A conversation window with message bubbles, streaming, a typing indicator and a prompts menu — the basis for any AI app.

v0's limits and when to move to another tool

v0 is excellent for UI, but it does not solve everything. Knowing the limits helps you choose the right tool for each task:

LimitThe right tool
Full Backend and DB logicLovable / Bolt.new
Deep editing of existing codeCursor / Windsurf / Claude Code
Complex integrations (Stripe, Auth)v0 for UI, an IDE for logic
A non-React stackBolt.new (Vue/Svelte/Astro)
Message quota on the free planUpgrade to Premium ($20/month)
rocket_launch
The winning flow: v0 → IDE → Deploy

Build the UI layer in v0 (fast and beautiful), inject the components into a Next.js project, then continue in Cursor or Windsurf to connect data, logic and APIs. Finally — deploy to Vercel in one click. This is mature Vibe Coding: each tool for what it does best.