Build Guide · Short Version ~4 min read · 8 stages

Design to Engineering with AI

How I built this portfolio with AI from 0 to 1.
Design to Engineering with AI

From abstract ideas to Figma wireframes to an industry-ready product design portfolio. Eight stages, one living file system, AI as co-pilot.

This case study walks through how I built the portfolio you're reading right now, starting with two Jackpot case studies and scaling the same workflow into a full site. I began with a single wireframe in Figma. Eight stages and numerous iterations later, Jackpot 0-to-1 and Jackpot · Growth were both running on the same design system, verified 1:1 against the Figma source. A V2 iteration pass then introduced a dozen reusable patterns across the site, and gave me a build process I can repeat for every future project.

8 Stages
2 Case studies
14 Iterations
1:1 With Figma
TL;DR

Designed and built a portfolio site of two case studies (Jackpot 0-to-1 and Jackpot · Growth) with Claude and the Figma MCP server. Started in Figma, drafted in React, killed the framework when it stopped earning its keep, rebuilt in vanilla HTML/CSS/JS, layered fourteen interactions, audited every section against the Figma source, then split the two case studies along a funnel arc when the audit caught one pre-spoiling the other.

The AI didn't replace the design decisions, it compressed the time between deciding and seeing, and shortened the overall build cycle.

Eight stages. One iteration loop.

Each stage produced an artifact that fed the next: Figma → 1:1 mirror → React draft → vanilla rewrite → interactive layer → 1:1 audit → cross-case refactor. The full version of this story lives in the long-form build guide.

Stage 01

Figma → Template

First wireframe extended into a full template via the Figma MCP. Named every text and paint style for a universal style guide, then ported it to project-jackpot-replica.html as a 1:1 HTML mirror.

Stage 01 — Figma wireframe and the 1:1 HTML mirror of the Jackpot case study
Stage 02

The OG (React)

~7,000 lines · React + Framer Motion + Tailwind CDN, all in a single HTML file. Feature-rich, but editing one piece of copy meant scrolling through ~6,000 lines of component code to find it.

project-case-study.html
// CDN libs, in-browser Babel — heavy.
<script src="react@18..."></script>
<script src="framer-motion@10..."></script>
<script src="cdn.tailwindcss.com"></script>

// Five React roots, one per section.
<div id="loyalty-ecosystem-root"></div>
<div id="golden-path-root"></div>

// ~300 lines of state per component.
function LoyaltyStrategicMap() {
  const [platform, setPlatform] = useState('native');
  // ...AnimatePresence, scroll handlers...
}
Stage 03

The Static Port

Stripped the framework. Rewrote everything as plain HTML/CSS ~1,100 lines vs. 7,000+. The point: get the foundation honest before adding interactivity back.

case-study-1-testing.html · :root
:root {
  --text:        #151515;
  --paleblue:    #EDF5FE;
  --blue-vivid:  #3b82f6;
  --green-vivid: #58CE70;
  --purple-vivid:#7856FE;
  --font: 'Helvetica Neue', ...;
}

/* Hybrid card — same look as the OG
   React, now plain CSS. */
.phase--hybrid {
  background: var(--paleblue);
  border-radius: 28px;
}
Stage 04

The Interactive Layer

Fourteen interactions layered on top, each a self-contained IIFE — scroll-reveal, hotspot carousel, hover-driven iPhone push, lightbox, count-up, custom cursor. ~700 lines of vanilla JS.

Acquisition Loop — The Friend Referral Ecosystem with Phase 02–04 cards and the iPhone Promotions screen
Stage 05

1:1 Mirror & Polish

Re-pulled the Figma file via MCP, extracted a full text inventory of all 26 sections, and audited the HTML line by line. Locked the typography. Rebuilt Building for Scale with real component PNGs.

Stage 05 — Wireframe mirror of the case study with every text and paint style labeled
Stage 06

The Funnel Split

Two case studies online, and an audit caught the 0-to-1 case pre-spoiling Growth's headline metric. Migrated ~1,500 lines along a funnel arc using a sub-agent. Result: two case studies that read cleanly back-to-back.

Stage 06 — The Funnel Split: 0-to-1 narrowed to Foundation, Growth gains the 4-phase funnel via audit + migrate
Stage 07

Growth Case Study v2

Iteration pass on the Growth file after the split settled. Grouped the four pillars into The Funnel and The Ecosystem. Added a per-view tab strip inside the lightbox so users can jump between rationales without closing it. Traded the 3-card methodology grid for a stat strip. Twelve new patterns shipped: phase-group wrapper, lightbox tab strip, three-layer scroll lock, vh-aware mockup clamp, screen-pill pulse sync, each one earned by a friction a reader would hit on read-through.

Stage 07 — The Funnel and The Ecosystem 4-card grouping from the Growth case study v2
Stage 08

The Repeatable Loop

Template, style guide, and interaction library all locked in from Stages 01–04. The next case study starts at the audit, not the wireframe. Documentation time drops, build time stays, which means more energy for the work that actually moves the portfolio forward.

Stage 08 — Template, Style Guide/Tokens, and Interaction Library from Stages 01–04 feed the next case study, which skips the wireframe step and starts at Audit + Documentation. The loop is the muscle.
DESIGN ABILITY Set · Build Cycle ★★★ LEGEND HOLO ↻ Tap to reveal
★ New Design Ability Unlocked ★

LOOP MASTERY

HP 88
Meta · Systems
Audit Vision Passive

Catches narrative spoilers across case studies before they ship. Triggers on every read-through.

Compress Cycle +50 XP

Skip the wireframe stage when the template, style guide, and interaction library already exist. Cuts setup cost by half.

"After eight builds, the loop became the muscle. Documentation time drops, build time stays, energy compounds."

The decision that mattered most.

Two case studies, one audit, one spoiler. The funnel-split refactor is the moment the project stopped being two pages and started being a series.

Stage 06 · The Funnel Split

When the audit told me the 0-to-1 case was pre-spoiling the Growth case study.

Both case studies felt complete on their own. Read back-to-back, they broke the second one's payoff, a hotspot tooltip in 0-to-1 already explained the +40% APV insight that was supposed to be Growth's headline.

Series-thinking caught what page-thinking missed.

The Funnel Split — 0-to-1 narrowed to Foundation while Growth gains the four-phase funnel via audit + migrate
claude · sub-agent migration brief
// One brief, one sub-agent, ~1500 lines moved in one pass.

Source · Jackpot-0to1.html
Target · Jackpot-Growth.html

// HTML to migrate
Lines 2697–2706 · "Outcome — The Ecosystem"
Lines 2708–2862 · RAF Flow Map + iPhone hover
Lines 2863–2933 · Loyalty 4-phase migration
Lines 2934–3101 · Strategic Map + 9 beats

Restructure target
- 4-pillar grid (Alpha · Beta · Gamma · Delta)
- Ecosystem transition between Beta and Gamma
- New Project Delta · RAF ecosystem

// Verification
- Tag balance · class presence · JS hooks resolve
- 6-pattern orphan check after strip
~1500 lines migrated cross-file
What the audit caught
  • The spoiler. A hotspot tooltip in 0-to-1 already explained Growth's +40% APV punchline, pre-revealing the feature responsible for the lift.
  • The bleed. Loyalty, Refer-a-Friend, and the Strategic Map were ~400 lines of growth-era work bloating the foundation case.
  • The fix direction. Split the work along the funnel: 0-to-1 owns foundation; Growth now owns Onboard → Monetize → Retain → Re-acquire.
How the migration ran
  • One brief, one sub-agent. Source ranges, destination structure, guardrails, and downstream patches, handed to a delegated agent so the bulk surgery ran with full context.
  • Verified with a structural diff. Tag balance, class presence, and JS hooks all resolved. Six-pattern orphan check in seconds.
  • Closed the loop. Footer cross-links wired in both directions; inline forward-pointer added to 0-to-1's results section.
  • Nothing gets wasted. The migration moved code rather than rewriting it, no duplicated work, no abandoned lines.

Four lessons I'd carry to the next build.

The whole engineering memoir lives in the long-form guide. These four are doing the most work in my head right now, the fourth landed during Stage 07's V2 iteration, after I thought the project was finished.

framework discipline (Stages 02–03) Lesson 01

Static-first scales better than React-first.

The original case study took 5× longer per change than the static port. The interactive layer landed cleanly because the foundation never moved. Use a framework when it earns its keep, kill it when it stops.

series-thinking (Stage 06) Lesson 02

Write each case study assuming the reader reads both.

Stage 06 surfaced a spoiler the eye missed: 0-to-1's hotspot tooltip pre-explained Growth's headline metric. The audit caught it; the migration fixed it. Series-thinking matters as much as page-thinking.

AI vocabulary (cross-cutting) Lesson 03

Name the patterns and tokens so AI uses them consistently.

"V1+V2 hybrid," "pill label," "beat × platform," "Body/Big 18px," "Label/Card H1." Once a pattern has a name, AI uses it consistently, and you can iterate on it by name. The vocabulary is the leverage.

iteration as practice (Stage 07) Lesson 04

"Finished" is a moving target.

Stage 06 felt like the end, two case studies, coherent series, no spoilers. Stage 07 said no. Every iteration that audited the work for friction surfaced a new pattern worth inventing: the phase-group wrapper, the lightbox tab strip, the three-layer scroll lock. None of those would have shipped if I'd called the project done. Design isn't a destination, it's a practice.

Where the work happened.

A small stack, on purpose. The AI co-pilot and the design-to-code bridge are the load-bearing pieces.

AI
Claude · long-context Figma MCP Gemini
Design
Figma Notion
Code
Vanilla HTML CSS variables Vanilla JS · IIFEs Lenis · smooth scroll
Editor
VS Code Terminal · claude
Want the deep dive?

The full engineering memoir lives in the long-form guide.

Every stage as a deep-dive project card, every interaction explained, code panels, methodology, the 12-lesson reflection list. ~15 minute read.

Coming soon