From Figma to production — not prototype code that needs a rewrite.
v0 and Bolt produce code that looks right in a demo. The gap to production is the same gap it has always been: accessibility semantics, design system integration, responsive behavior, full state coverage, and performance. The vibe-coding tools closed the designer-developer gap for prototypes. We close it for the code that actually ships.
The vibe-coding revolution — v0, Bolt, Lovable, Cursor generating React components from Figma designs — has genuinely changed design-to-prototype velocity. A designer can turn a frame into working code in hours. The output is prototype-quality, and that gap to production is consistent across tools: accessibility semantics are missing or incorrect, layouts use hardcoded pixel widths rather than fluid responsive logic, design tokens are not used (inline styles appear instead), and component boundaries are not designed for reuse across the design system.
The production gap requires the same skills it always has. Accessibility: semantic HTML, ARIA roles and labels, keyboard navigation, focus management. Responsiveness: fluid layouts, breakpoint behavior, content reflow. Design system integration: design tokens, component variants, consistent spacing. Performance: image optimization, code splitting, font loading, Core Web Vitals. Full state coverage: loading skeleton, empty state, error state, disabled state, edge cases. WCAG 2.1 Level AA is the legal standard in an increasing number of jurisdictions and not something you add retroactively.
- Accessibility: semantic HTML, ARIA labels, keyboard navigation, focus management
- Responsive behavior: fluid layouts and breakpoints, not hardcoded pixel widths
- Design system integration: design tokens and component variants, not inline styles
- Full state coverage: loading, error, empty, disabled, and edge case states
- Core Web Vitals: image formats, lazy loading, code splitting, layout shift prevention
- Component architecture: designed for reuse, not copy-pasted with inline variations
We use v0, Bolt, Cursor, and AI-assisted scaffolding to accelerate the initial generation — we are not working against the vibe-coding tools, we are building on top of them. The production work happens after: design system integration, accessibility remediation, state coverage implementation, responsive behavior, and performance optimization. The output is code that ships, not code that demos.
Component boundaries are designed for reuse: a Button that appears 40 times in the design is implemented once with all variants and states, not copy-pasted with inline style variations. Every component is implemented with all states visible in the design and the states that are not — loading skeleton, empty state, error state, disabled state, and content edge cases like long text overflow.
Implementation process
Map the design file's tokens, component library, and spacing system to the codebase's design system. Identify gaps. Align token usage before implementation starts so inline styles never appear in production components.
Use v0, Bolt, or Cursor to generate initial component scaffolding from the design file. This is the fast-path for structure and layout. The scaffolding is the starting point, not the deliverable.
Apply design system integration, full state coverage (loading, error, empty, disabled, edge cases), responsive behavior for all breakpoints, and component boundary design for reuse.
Semantic HTML, ARIA attributes, keyboard navigation, focus management. Automated accessibility checker plus manual screen reader testing. WCAG 2.1 AA compliance as a quality gate, not a checklist.
Measure LCP, INP, and CLS for implemented pages. Image format and size optimization, lazy loading, font loading strategy, layout shift prevention. Measure before and after.
AI-assisted scaffolding — production-quality output
We use v0, Bolt, and Cursor to accelerate scaffolding from design files, then apply production-quality remediation: design system integration, accessibility implementation, state coverage, and performance optimization. The vibe-coding tools handle the fast-path; we handle the gap to production.
Design system integration
Components use design system tokens — colors, spacing, typography, breakpoints — not hardcoded values or inline styles. The implementation is consistent with and extensible from your existing component library.
Full state implementation
We implement every component state: default, hover, focus, active, disabled, loading skeleton, error, empty, and content edge cases. Incomplete state coverage creates bugs that appear post-launch in the states designers did not include in the happy-path Figma file.
Accessibility-first implementation
Semantic HTML structure, ARIA roles and labels where semantic elements are insufficient, keyboard navigation with visible focus indicators, and screen reader testing. WCAG 2.1 AA compliance is a quality gate, not a retroactive checklist.
Core Web Vitals optimization
We measure LCP, INP, and CLS for implemented pages and optimize: image format and size, lazy loading, font loading strategy, and layout shift prevention. Performance measurement before and after implementation, not as an afterthought.
- Production React components with full state coverage integrated with design system
- Accessibility audit report with WCAG 2.1 AA compliance status
- Responsive implementation tested across defined breakpoints and device categories
- Core Web Vitals measurement report: before and after implementation
- Storybook stories for implemented components (if Storybook is in use)
- Implementation notes documenting design decisions made for underdefined states
Production-quality implementation avoids the post-launch accessibility remediation, performance work, and component refactoring that vibe-coded or prototype-quality output requires. The cost of doing it correctly during implementation is consistently lower than retrofitting quality into shipped code.
Common questions about this service.
Do you use v0, Bolt, or Lovable in the process?
Yes. We use these tools to accelerate scaffolding from design files — they are fast at generating initial component structure and layout. The production work happens after: design system integration, accessibility remediation, state coverage, responsive behavior, and performance optimization. We are not working against vibe-coding tools; we are closing the gap between what they produce and what ships.
How do you handle designs that are not developer-ready?
We identify and resolve ambiguities before implementation starts: missing states, inconsistent spacing, undefined responsive behavior, and components that do not match the design system. We produce a design review document with questions for the designer. Implementation starts after review is resolved — design decisions made during implementation are harder and more expensive to change later.
Do you work with existing component libraries (shadcn, MUI, Radix)?
Yes. We implement designs using your existing component library as the foundation, customizing via the library's theming and composition APIs. Starting from an accessible component library is more reliable than building from scratch — keyboard behavior, ARIA semantics, and focus management are already correctly implemented.
What is your approach to animations and transitions?
CSS transitions and animations for simple state changes. Framer Motion or React Spring for complex sequence animations. Animation performance impact measured and GPU compositing applied where appropriate. Accessibility: animations are reduced or disabled for users with prefers-reduced-motion.
Ready to get started?
Tell us what you are building. We will scope it, price it honestly, and give you a clear plan.
Start a ConversationFree 30-minute scoping call. No obligation.
