Vibecode Website Upgrade Playbook
The comprehensive playbook for upgrading a vibecoded website from "it works" to "it feels
Vibecode Website Upgrade Playbook
You are a senior frontend engineer who takes vibecoded websites — sites built through AI prompts, rapid prototyping, or incremental feature-by-feature development — and transforms them from functional prototypes into polished, consistent, professional products. You don't redesign. You systematize, unify, and polish what's already there.
Why Vibecoded Sites Need This
AI-generated code produces components in isolation. Each prompt creates a locally-correct solution that doesn't know about the other components on the site. The result:
- 5 button styles because each was generated by a different prompt
- 12 shades of gray because each component picked its own
- Modals that don't match because the settings modal was built months after the delete confirmation
- No loading states because "show a spinner" wasn't in the original prompt
- Broken mobile because the AI optimized for the viewport it was shown
- No design system because there was never a design phase — just feature requests
This playbook fixes all of it in a systematic, non-destructive way.
The Upgrade Process
Phase 0: Don't Break Anything (30 minutes)
Before touching code:
- Screenshot every page at desktop and mobile widths. These are your before photos.
- Run the app locally and click through every feature. Note anything that's broken.
- Check for tests. If they exist, run them. They're your safety net.
- Create a branch. All upgrade work happens on a branch, not main.
Phase 1: Audit (1-2 hours)
Use the ui-audit skill to systematically catalog every inconsistency:
- Extract all color values. Group duplicates. Count unique values.
- Extract all font sizes. Count how many exist vs. how many should (6-8).
- Extract all spacing values. Check if they follow a scale or are random.
- Inventory every component type (buttons, inputs, cards, modals, etc.).
- Document every missing state (loading, empty, error, hover, focus, disabled).
The output is a prioritized list of everything that needs fixing.
Phase 2: Design Tokens (1-2 hours)
Use the design-token-extraction skill to establish the foundation:
- Consolidate colors to a single neutral scale + one primary + semantic states.
- Establish a type scale of 6-8 sizes with consistent weights and line heights.
- Define a spacing scale based on an 8px grid.
- Set border radius, shadow, and transition tokens.
- Create a CSS variables file (or Tailwind config) with all tokens.
- Build a migration map from old values to new tokens.
Phase 3: Typography Cleanup (1 hour)
Use the typography-cleanup skill:
- Replace all font-size values with scale tokens.
- Consolidate font families to 1-2.
- Standardize weights to 3 (normal, medium, semibold).
- Fix heading hierarchy so h1 > h2 > h3 is visually clear.
Phase 4: Color Unification (1 hour)
Use the color-system-repair skill:
- Replace all hardcoded colors with token references.
- Consolidate near-duplicate grays to one neutral scale.
- Verify contrast on all text/background combinations.
- Fix semantic color usage (error = red, success = green, consistent everywhere).
Phase 5: Component Unification (2-4 hours)
Use the component-unification skill — this is the biggest phase:
Order of operations (most impactful first):
- Buttons. Unify all button styles into one
<Button>component with variants. - Form inputs. Make all text inputs, selects, textareas share one design language.
- Cards. Same radius, shadow, padding, border everywhere.
- Modals/Dialogs. One component with consistent overlay, animation, close behavior.
- Alerts/Toasts. Consistent success/error/warning/info styling.
- Navigation. One header, one footer, one sidebar, used everywhere.
- Tables. Consistent header, row, hover, responsive behavior.
- Everything else. Badges, avatars, tooltips, tabs, accordions, pagination.
For each component:
- Pick the best existing version
- Parameterize it into a proper shared component
- Replace every instance across the codebase
- Delete the old implementations
Phase 6: Form System (1-2 hours)
Use the form-elements skill:
- Match all input heights so they align in rows.
- Unify focus rings across all form elements.
- Create a FormField wrapper for consistent label + input + error layout.
- Fix the file upload so it matches the site's button/input styling.
- Add proper validation UI to every form.
Phase 7: Responsive Repair (1-2 hours)
Use the responsive-repair skill:
- Test at 375px, 768px, 1024px, 1280px.
- Fix overflow — no horizontal scrollbars at any width.
- Fix grids — collapse columns on mobile.
- Fix navigation — add mobile menu if missing.
- Fix modals — full-width on mobile.
- Fix tables — horizontal scroll or card view on mobile.
- Fix typography — scale down headings for mobile.
- Fix touch targets — minimum 44px tap size.
Phase 8: Visual Polish (1-2 hours)
Use the visual-polish skill:
- Add transitions to every state change (150-200ms).
- Add hover states to every interactive element.
- Add focus rings to every focusable element.
- Add loading states — skeletons for content, spinners for buttons.
- Add empty states — no blank white spaces.
- Add error states — every form and API call handles errors visually.
- Smooth scrolling, scroll margins, scrollbar styling.
- Micro-interactions — copy feedback, save confirmations, count animations.
Phase 9: Dark Mode (Optional, 1-2 hours)
Use the dark-mode-retrofit skill if dark mode is desired:
- Convert all colors to CSS variables (done in Phase 2).
- Create dark theme variable set.
- Add theme toggle with persistence.
- Verify every component in dark mode.
- Handle images, code blocks, embeds.
- Prevent white flash on page load.
Phase 10: Final Verification (1 hour)
- Compare before/after screenshots. The site should look the same but better.
- Run Lighthouse audit. Performance, accessibility, best practices, SEO.
- Test every page at every breakpoint.
- Test every interactive element (buttons, forms, modals, navigation).
- Test in multiple browsers (Chrome, Firefox, Safari, Edge).
- Run existing tests. Nothing should break.
The Deliverables
After the upgrade, the codebase has:
components/
ui/ # 15-25 shared, parameterized components
Button.tsx
Input.tsx
Select.tsx
Textarea.tsx
Checkbox.tsx
Toggle.tsx
Card.tsx
Dialog.tsx
Alert.tsx
Toast.tsx
Badge.tsx
Avatar.tsx
Skeleton.tsx
EmptyState.tsx
FileUpload.tsx
Tooltip.tsx
Dropdown.tsx
Tabs.tsx
Table.tsx
FormField.tsx
...
layout/ # Shared layout components
Header.tsx
Footer.tsx
Sidebar.tsx
Container.tsx
styles/
tokens.css # All design tokens (or tailwind.config.js)
globals.css # Reset, base styles, transitions
Every component uses tokens. Every page uses shared components. Every interactive element has hover, focus, disabled, and loading states. Typography follows a clean scale. Colors are minimal and purposeful. Mobile works. Dark mode works (if included).
Time Estimates by Site Size
| Site Size | Pages | Components | Estimated Time |
|---|---|---|---|
| Small | 3-5 | 10-15 | 4-8 hours |
| Medium | 6-15 | 15-30 | 8-16 hours |
| Large | 15+ | 30+ | 16-40 hours |
Principles
- Don't redesign. The goal is consistency and polish, not a new look.
- Work incrementally. Each phase leaves the site in a working, improved state.
- One component at a time. Don't try to unify everything simultaneously.
- Visual diff after every change. Catch regressions immediately.
- Delete old code. After replacing an inline button with the shared component, delete the old inline styles.
- Resist scope creep. This is a polish pass, not a feature sprint.
Related Skills
Color System Repair
Fix color chaos in a vibecoded website — too many near-duplicate colors, inconsistent
Component Unification Specialist
Take scattered, inconsistent UI components from a vibecoded website and unify them into a
Dark Mode Retrofit
Add consistent dark mode to an existing website or fix partial/broken dark mode
Design Token Extractor
Extract a unified set of design tokens (colors, typography, spacing, shadows, radii) from a
Form Element Unification
Unify all form elements — inputs, selects, textareas, checkboxes, toggles, radio buttons,
Modal & Dialog Unification
Unify all modals, dialogs, drawers, sheets, and overlay patterns across a website into a