How I designed with an AI partner, what worked, where it broke, and what I learned
When I first started using v0, I was working on a project I can’t show publicly yet. So the dashboard you’ll see in this article is a simplified reconstruction (a stand in for the real thing). The visuals are edited, the data is fake, but the workflow is the same.
And honestly, the workflow is the real story.
I didn’t come to v0 as an expert. I learned it the way most people learn new tools today, through internet apprenticeship: watching Raymmar vibe code layouts in minutes, picking up prompt discipline from 0xDesigner, realizing I should pay attention to details because TJ Pitre said so. Then figuring out how to translate those lessons into my own context.
This article is really a lab notebook about that process: how I designed with an AI partner, what worked, where it broke, and what I learned from rebuilding the same screens over and over again until the structure finally clicked.
The project I built was a benchmarking and predictive modeling tool in the fintech space. Imagine a dashboard with a lot of filters and a lot of data that you can navigate through.
v0 became a space to answer those questions.
These are notes from the field talking about the things I found myself doing over and over until they became a pattern. All of the following started because I saw a random tweet of someone doing this.
The biggest unlock: v0 copies visual context better than language input.
If I gave it a blank prompt like “build me a dashboard with filters,” I got something extremely default. But if I pasted even a rough Figma screenshot with messy spacing, placeholder text and all, it understood structure and the information architecture better.
It doesn’t need a perfect design. It should be clear
Changing one thing at a time became my survival strategy.
If I asked for three edits at once, something always blew up. The padding often went rogue, a div floated away, and once, v0 decided the best solution was to transform my entire sidebar into a modal. Micro prompts kept things (and me) sane.
And when I needed layout level adjustments, the design mode was cleaner than prompting. Small global tweaks propagate unpredictably, so I learned to isolate changes as much as possible.
This was a hard lesson.
Each v0 chat becomes its own memory world. If I kept adding new features in the same conversation, the model started mixing up what it was supposed to. Random components reappeared from two hours ago, resurrected like ghosts.
So I started treating chats like components:
Context management is important.
Annotated screenshots were magic! v0 can read your notes through OCR, so things like:
landed perfectly when I pointed directly at the UI. It’s the closet I felt to co-designing with v0.
If something breaks, go backward, not forward.
Once, a single prompt asking for a small change somehow collapsed my entire layout. Cards resized unpredictably. The page scrolled horizontally. Even the footer mutated.
I spent 20 minutes trying to fix it before realizing the best move was to restore the previous version. Debugging through prompting is rarely worth it.
This is where expectations matter.
v0 is perfect for:
But not for production quality.
Once I validated the flow and go ahead, it had to be coded with a more controlled tool/ environment.
The default v0 look with shadcn is clean but generic. If you want something closer to your system, add Figma references early. The sooner the model sees your patterns, the more consistent your outputs.
Complex interactions like dependent dropdowns, live data, and real time updates can be abstracted in the prototype. Early on, I tried to force v0 to nail every detail. That was a trap. I learnt that:
Flow > fidelity.
Prototype > polish/ perfection.
If I needed clarity, I added a note in the interface like on click, this would expand. Arrows on Figma screenshots help. AI doesn’t mind rough edges. Stakeholders don’t either when the goal is understanding behavior, not evaluating final polish.
Yes! I would use it to build fast and try not to get caught in minor iterations. v0 is great for:
At the end of the day, I used this and my original Figma designs both for the dev handoff, but the efficient validation from my stakeholders was a big win. Using v0 sped up my prototyping and stakeholder alignment time. It shifted how I think about the relationship between language and layout. About how much structure can be shaped by words. About when to embrace unpredictability and when to rein it back in.
It made design feel more conversational by making it less about the UI and more about describing constraints and flows. It let me prototype in the “final medium” early on, and with less friction. And maybe most importantly, it reminded me that iterating with imperfect tools is still one of the best ways to grow as a designer.
It's still something you have to go to, rather than something that meets you where you are.

And how this fits inside real user research workflows
How 0xDesigner uses MCPs, Codex, PRDs, and agent-driven workflows to build faster, and stay focused on product intent.
for designers and product teams in the new AI paradigm.
