[Guide] A developer's v0 veteran guide

Hello all,

I would not consider myself a prompting expert, but I’m somewhat of a veteran using v0. I have been using it since launch day for side projects, have been one of the first subscribers (remember the white page that generates 3 variants for your prompt?), and now I’m using it almost daily to ship production code at my current job.

I’ve seen complaints about insane token usage of user requests. I honestly cannot reproduce this and my usual token usage is below the mentioned median of $0.08 per prompt. I’m still getting a ton of use out of v0 without exceeding my monthly token allocation.
So I guess there would be some value in sharing my workflow and experience with v0, to help others get the best experience possible.

First of all: I optimized our codebase to align with the “cool kids tech stack”—Next.js, Tailwind, shadcn/ui, lucide icons. This way I can usually just copy-paste v0 results and do not have to give explicit input about what frameworks/tools to use.

We work in a medium-sized fullstack Next.js codebase building a data-heavy B2B SaaS product.

A developer’s v0 veteran guide

Know v0’s limits

The more complex a component gets, the harder it will be to get it correct with v0. From my experience, v0 is at the level of a junior to mid-level engineer that requires a lot of support. If you have specific solutions for complex problems in mind, share them with v0. Use another v0 chat or ChatGPT to make your instructions digestible.
If stuff gets really complex or involves deep knowledge of specific libraries or APIs, don’t expect v0 to know them. Let v0 build the boilerplate, leave out the complex parts, and build it yourself. Once you have working code, v0 can usually help to improve it, but make sure it doesn’t break the functionality.
It is just not a reasonable assumption that v0 can do everything. You will spend dozens of iterations with no result on this, so learn its limits.

Keep the context as small as possible

Imagine you’re being asked to jump into a new 1M LOC codebase and to fix the button in the “A module”. Guess what, it will take some time for you to find what exactly needs to be fixed and if this could have implications on any other part of the app. Isolate the problem and mock the surroundings. This helps to keep focus on the problem and doesn’t need millions of tokens to iterate.

Honestly, at the moment, for everything exceeding the size of a small 2–3 pages project, I would not recommend working on the whole project with v0. Maybe this will get better in the future, but it’s probably a non-trivial problem to solve.

Use the right model

v0-lg is significantly more expensive than md. Use it to plan out more complex tasks without generating code. Ask it to generate an implementation plan without implementing any code. Then use md or sm (once it’s released) to implement it. I haven’t done this yet, but this was mentioned in the chat and seems reasonable.

Use case 1: Creating a new component

  • Start a new chat with no project, think about a basic version of the required component. Specify the data objects that will go into the component as detailed as possible. Use another v0 chat or ChatGPT to paste in table definitions and ask for type definitions.
  • Ask v0 to define or generate matching mock data in the page and then pass them into the component. This has worked sufficiently well most of the time and could even generate data that makes a chart interesting enough to show some edge cases.
  • Iterate on the component in v0. Ask for changes and improvements. Revert to an earlier version as soon as possible if you see v0 taking wrong turns. If your prompts are not leading in the right direction, try to improve your prompt with AI.
  • Take the component into your codebase and wire it up.

Use case 2: Improve / Fix an existing component

  • Upload or paste only relevant files. Tell v0 to render this component in an example and to mock data.
  • Be specific with bug reports. What specifically is not working? What is the desired state? “Fix X, it’s not working” can work but is highly uncertain.
  • Ask v0 to keep the component’s signature compatible with the original so you can drop-in replace the fixed component. This usually requires that your components are structured maintainably—if every component is full of side effects, the mocking will be harder.

Use case 3: Solving a problem

  • Sometimes I see unexpected behavior in React or Next.js and want to understand where my mental model is wrong.
  • Ask v0 to create a reproduction of a problem by describing what you want to do. Practical example: “Create a RSC that has a color select. The select value is stored as search params. Render example components using that color.” Next prompt: “In my codebase I’m experiencing lag in between changing the select and the URL being updated. What could be the reason for this?”
  • Ask v0 to explore different reasons; it will add them to the reproduction example. Study the code of a reproduction where it works and implement the learnings into your codebase—either manually or by starting a new v0 chat and specifically stating the solution you want and the component that needs to be changed.

3 Likes

Two features requests for the team that are more aligned with a (in my opinion) realistic workflow:

  • When v0 creates new components to replace old ones, the old code will stay there. Make sure old code that is unused gets removed.
  • Add a feature to select certain files and start a new chat with them. Take over the good parts, reset the context.
5 Likes

This is fantastic! Thanks for sharing this with the community, Bernd. :slight_smile:

We’ll share your feature requests with the rest of the team.

I also just sent you a DM!

2 Likes

This is so good! Thank you for writing it :smiley:

Added to the community handbook to make it easy to find

2 Likes

Sorry if I am rude, but this is completely non-sense, and seems you didn’t even experience V0 at its fullness. Not that u didnt reach its maximum capacity, but seems you barely scratched the surface. So giving advice like this can mislead the people. I am really surprised that both Vercel staff @pawlean and @amyegan praised ur message with a bot like answer without understanding what you were saying here.

V0 is capable building full stack, powerful web apps, using internal, external APIs, big DBs etc! It is so powerful, and lot of us including me are not using it correctly.

Seems that you really didnt try to build anything else then just few nice looking frontend page.

Regarding pricing I can’t comment yet, because I am still using old pricing model until my subscription renew. But I need to be honest, maybe wrong about it, but this seems like either you wanted to play on card to be a “good boy” and tell how everything is okay regarding pricing, or it was agreed message from the Vercel team.

Whatever it is, probably not gonna find truth, because none will admit. I am aware this message might be direct attack on you guys, but I really needed to share my honest opinion if anyone care about that this days.

Btw for the context: Just not sure if the activity combine both my personal and team plan, since I did migration.

Peace out.

1 Like

I absolutely used it for more than that. I’ve built small projects with backends using v0 for DB/storage and AI SDK, requiring integrations. I’ve also tried the git sync.

Here’s why I barely use it in my day to day:

  • v0 is not strong in writing Drizzle. It invents APIs all the time. Therefore I can barely use it.
  • The most complex stuff I do in the backend is fetch complex queries. I give that task to ChatGPT and translate it to Drizzle manually. There’s really not much to the backend that I couldn’t do myself in a few minutes.
  • Pulling components Fullstack from a bigger, live production project into v0 usually means a bigger part of the file tree, increasing the costs. It would also require to setup all dependencies over and over again. Creating a project linked to git with all the environment did not give me great results. This is where v0 needs to improve.
  • Therefore I deliberately opt for pulling specific files into v0 which are usually Frontend and the immediate surroundings are easy enough for v0 to mock.
  • I actually enjoy writing backend code and have more deficiency in Frontend.

For now this workflow works fine for me. I’m getting plenty of productivity out of it and do not have to cry every 10 minutes in this forum about everything costing 100x than before the pricing changes :wink:. Doing more costs more. Exponentially so.

Everyone is free to not use my workflow because it’s too manual. But understand what you’re buying into if you let v0 manage everything. Apparently it’s not going well for folks, hence the complaints.
The choice to do my workflow semi-manually is a deliberate decision and not one that is driven by lack of knowing the possibilites.

My workflow might change once I get a good IDE integration going. Once Vercel figures out how to make the integrations more stable and production workflow friendly, I will give it another try. I believe these things are currently causing 90% of the problems for the people, so I chose not to use them. V0 is by no means a perfect product, but I still get a lot of productivity out of it.

V0 is capable building full stack, powerful web apps, using internal, external APIs, big DBs etc! I

In my personal opinion it’s not there yet. At least it can’t do all that reliably at the same time in a bigger production project. :man_shrugging:
Maybe people are falling for the hype marketing and think v0 can do all that and then have trouble. That would be to blame on Vercel. I tend to be a realist and have my own opinion on what v0 can be trusted with.

I’m not trying to suck up to Vercel. I just don’t agree with the current sentiment of this community that the product is shit and the pricing is 100x of what it should be. The dissatisfied and the incompetent seem to be a loud majority here - because where else would you go if you’re frustrated. I’m content with what v0 can do for me most of the time. Could it be better? Yes. I’m also not holding back with telling Vercel where they failed their pricing strategy (usage based with paywalling features behind min. subscriptions) and telling them where the product needs improvement.

At no point Vercel controlled or influenced my posts or comments in this community. Please do not project your discontent on me.

What is the truth you’re mentioning? It seems like a bunch of people here constructed a conspiracy theory where they are the victims and Vercel is the perpetrator.

I can only recommend everyone who is offended by what Vercel is doing, to use the democracy of your dollar and spend it elsewhere. If I’m unhappy with a business I take my money and spend it elsewhere.

2 Likes

yep, seems thats the most what you build there using v0. So considering that I think its not wise to tell that v0 is not capable doing more and that people should stick with 2-3 pages projects.

I am vibe coding, and considering that I have built very complex stuff, I am really surprised that you as a seems “developer” didn’t go beyond the limit of creating something more powerful or complex then 2-3 beautiful front pages. Maybe u didnt had need for that, I understand. Developers, specially the one working for other companies usually build what is told to build and don’t have much ideas to solve their own problems. I am really speaking from my experience running team of developers for last 10 years.

And no conspiracy here, as I said I didnt get affected by pricing yet, so neither could complain until I feel it. But your post didnt have much sense specially what you showed that you think V0 is capable. Try bit harder, and you will see what it can do.

Ad-hominem attacks and questioning someone’s competence aren’t helpful for a productive discussion — especially in a technical community. There’s a Code of Conduct.

I had weekly occasions where the things I tried to build were too complex for v0 (or any other model) to solve (again, medium-large production codebase), so I resorted to manually building them. Over time I just got to know the limits of v0 better and try to avoid those, because they result in 20 iterations, a few $s and 1-2 hours wasted.

I’m just trying to help and you’re trying to be a dick about it.

2 Likes

@shtefcs happy to read a guide from you or to watch a video guide, where you show how to utilize v0 for more complex problems with full fletched integrations.

2 Likes

First of all, being direct to you doesn’t mean I am trying to be a di*k. Calling yourself a V0 Veteran and stating down there what u said was contradictory and its natural that one you come on people like me it will tell you in the face direct true.

You should do ur reality check first. I am not trying to make you feel bad here, I swear, I wanna lift people. But your comment in the “guide” was not a guide, but more a flex “I am good, you are bad” and who have a bigger :eggplant:.

I faced so many limits with v0 over time, if comparing to you I feel I could call my self v0 veteran, but I will not. I planned to write a guide, but the guide will not discourage people to not go beyond 2-3 beautiul pages, but how to actually make a good shit, strong, powerful, solve complex problem and make a damn money from their app.

I will do that once I finish my project, and will come back here and share you what I built “beyond 2-3 pages”

1 Like

I will share bro for real. Finishing one of my app and then oh that same APP will create a guide.

you as a seems “developer”

usually build what is told to build and don’t have much ideas to solve their own problems

Totally not being a dick - and “wanna lift people”

And for the fourth time: This workflow is not used on “2-3” pages but on a B2B SaaS production codebase that is generating good ARR.

You’re building a straw man and argue against it.

2 Likes

I wanted to re-iterate our Code of Conduct as shared above.

https://community.vercel.com/guidelines

You’re more than welcome to write and share your own guide, but please don’t go attacking someone else’s contribution.

AI gen is still new, vibe coding is still new, we’re all learning here. @bernd-strehl isn’t saying this is the only way to use v0.

At the end of the day, @bernd-strehl shared this for others to learn from or at least get ideas from. The v0 team, as well as our community team were pleased with this because we are generally trying to encourage more of these types of posts to get everyone to learn from each other. This was not a bot-like response.

I’m looking forward to reading your workflow, Stefan. Do share it here once it’s done!

2 Likes

for me it literally started june 1. All of a sudden it cant consistently use image folders and randomly changes filenames?! and it burned thru a months free credits in 3 days so i dropped another $20 just to finish a deployment deadline…and it was gone by the time i was done with the deploy. Did we get hoodwinked? last month i built debugged and deployed 4 pretty code heavy sites, 2 full of web apps i had v0 dev out for the sites too…and never used up my months free credits.

1 Like

Feel free to share any chat examples with us, we’d love to pass this on as feedback to the v0 team!