launchframe 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,120 +1,121 @@
1
- # Launchframe Project
2
-
3
- This project was scaffolded by **[Launchframe](https://github.com/evangruhlkey/launchframe)** — an AI-powered website cloner + SaaS rebrander.
4
-
5
- ```bash
6
- npx launchframe@latest <url> "<saas idea>"
7
- ```
8
-
9
- Dependencies were installed for you. Files were written to **this directory** (project root) so **`.cursor`**, **`.claude`**, etc. work when you open this folder in your editor. Config lives in **`launchframe.config.json`** (`url` + SaaS `idea`).
10
-
11
- ---
12
-
13
- ## Quick start (two steps)
14
-
15
- 1. **Open this folder** in [Cursor](https://cursor.com/) — the directory that **contains** `.cursor/` (not a parent folder).
16
- 2. In chat, say: **Build it.**
17
-
18
- Your AI reads [`launchframe.config.json`](./launchframe.config.json) and [`AGENTS.md`](./AGENTS.md) and runs the full clone + rebrand pipeline (same as **`/clone-website`**).
19
-
20
- Rather read a postcard? See [`START_HERE.md`](./START_HERE.md).
21
-
22
- ## What `/clone-website` does
23
-
24
- A multi-phase pipeline runs inside your AI agent:
25
-
26
- 1. **Reconnaissance** — screenshots, design-token extraction, **image/video inventory** (`MEDIA_MANIFEST.md`), interaction sweep (scroll, click, hover, responsive)
27
- 2. **Foundation** — fonts, globals, **`framer-motion`**, **download images & videos** to `public/` before most UI build
28
- 3. **Component Specs** — writes detailed spec files (`docs/research/components/`) with exact CSS, **local media paths**, and **Motion** (CSS vs Framer)
29
- 4. **Parallel Build** — dispatches builder agents in git worktrees, one per section
30
- 5. **SaaS Rebrand Pass** — swaps product name, headlines, feature copy, CTAs, and brand marks to match `launchframe.config.json#idea`. Visuals stay 1:1.
31
- 6. **Assembly & Visual QA** — merges worktrees, wires up the page, runs visual diff against the original
32
-
33
- Each builder agent receives the full component spec inline — exact `getComputedStyle()` values, interaction models, multi-state content, responsive breakpoints, asset paths. No guessing.
34
-
35
- ## Supported AI Agents
36
-
37
- | Agent | Status |
38
- | ------------------------------------------------------------- | -------------------------- |
39
- | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | **Recommended** — Opus 4.7 |
40
- | [Codex CLI](https://github.com/openai/codex) | Supported |
41
- | [OpenCode](https://opencode.ai/) | Supported |
42
- | [GitHub Copilot](https://github.com/features/copilot) | Supported |
43
- | [Cursor](https://cursor.com/) | Supported |
44
- | [Windsurf](https://codeium.com/windsurf) | Supported |
45
- | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Supported |
46
- | [Cline](https://github.com/cline/cline) | Supported |
47
- | [Roo Code](https://github.com/RooCodeInc/Roo-Code) | Supported |
48
- | [Continue](https://continue.dev/) | Supported |
49
- | [Amazon Q](https://aws.amazon.com/q/developer/) | Supported |
50
- | [Augment Code](https://www.augmentcode.com/) | Supported |
51
- | [Aider](https://aider.chat/) | Supported |
52
-
53
- ## Tech Stack
54
-
55
- - **Next.js 16** — App Router, React 19, TypeScript strict
56
- - **shadcn/ui** — Radix primitives + Tailwind CSS v4
57
- - **Tailwind CSS v4** — oklch design tokens
58
- - **Framer Motion** — default for non-trivial marketing animation (scroll reveals, staggers, layout); see `AGENTS.md`
59
- - **Lucide React** — default icons (replaced by extracted SVGs during cloning)
60
- - **Media** — targets download to `public/images/` & `public/videos/` per `docs/research/MEDIA_MANIFEST.md` (see `INSPECTION_GUIDE.md`)
61
-
62
- ## Prerequisites
63
-
64
- - [Node.js](https://nodejs.org/) 24+
65
- - An AI coding agent with browser automation MCP (Chrome MCP, Playwright MCP, Browserbase MCP, etc.)
66
-
67
- ## Project Structure
68
-
69
- ```
70
- src/
71
- app/ # Next.js routes
72
- components/ # React components
73
- ui/ # shadcn/ui primitives
74
- icons.tsx # Extracted SVG icons
75
- lib/utils.ts # cn() utility
76
- types/ # TypeScript interfaces
77
- hooks/ # Custom React hooks
78
- public/
79
- images/ # Downloaded images from target
80
- videos/ # Downloaded videos from target
81
- seo/ # Favicons, OG images
82
- docs/
83
- research/ # Extraction output, component specs, REBRAND.md
84
- design-references/ # Screenshots
85
- scripts/
86
- sync-agent-rules.sh # Regenerate agent instruction files
87
- sync-skills.mjs # Regenerate /clone-website for all platforms
88
- launchframe.config.json # URL + SaaS idea (single source of truth)
89
- AGENTS.md # Agent instructions (single source of truth)
90
- START_HERE.md # "Open Cursor say Build it"
91
- CLAUDE.md # Claude Code config (imports AGENTS.md)
92
- GEMINI.md # Gemini CLI config (imports AGENTS.md)
93
- ```
94
-
95
- ## Commands
96
-
97
- ```bash
98
- npm run dev # Start dev server
99
- npm run build # Production build
100
- npm run lint # ESLint check
101
- npm run typecheck # TypeScript check
102
- npm run check # Run lint + typecheck + build
103
- ```
104
-
105
- ## Use Cases
106
-
107
- - **Launch a SaaS faster** — start from a proven landing page, not a blank canvas
108
- - **Platform migration** — rebuild a site you own from WordPress/Webflow/Squarespace into a modern Next.js codebase
109
- - **Lost source code** — your site is live but the repo is gone; get the code back in a modern format
110
- - **Learning** — deconstruct how production sites achieve specific layouts, animations, and responsive behavior
111
-
112
- ## Not Intended For
113
-
114
- - **Phishing or impersonation** — this project must not be used for deceptive purposes, impersonation, or any activity that breaks the law
115
- - **Passing off someone's design as your own** logos, brand assets, and original copy belong to their owners
116
- - **Violating terms of service** — some sites prohibit scraping or reproduction. Check first
117
-
118
- ## License
119
-
120
- MIT
1
+ # Launchframe Project
2
+
3
+ This project was scaffolded by **[Launchframe](https://github.com/evangruhlkey/launchframe)** — an AI-powered website cloner + SaaS rebrander.
4
+
5
+ ```bash
6
+ npx launchframe@latest <url> "<saas idea>"
7
+ ```
8
+
9
+ Dependencies were installed for you. Files were written to **this directory** (project root) so **`.cursor`**, **`.claude`**, etc. work when you open this folder in your editor. Config lives in **`launchframe.config.json`** (`url` + SaaS `idea`).
10
+
11
+ ---
12
+
13
+ ## Quick start (two steps)
14
+
15
+ 1. **Open this folder** in [Cursor](https://cursor.com/) — the directory that **contains** `.cursor/` (not a parent folder).
16
+ 2. In chat, say: **Build it.**
17
+
18
+ Your AI reads [`launchframe.config.json`](./launchframe.config.json) and [`AGENTS.md`](./AGENTS.md) and runs the full clone + rebrand pipeline (same as **`/clone-website`**).
19
+
20
+ Rather read a postcard? See [`START_HERE.md`](./START_HERE.md).
21
+
22
+ ## What `/clone-website` does
23
+
24
+ A multi-phase pipeline runs inside your AI agent:
25
+
26
+ 1. **Reconnaissance** — screenshots, design-token extraction, **image/video inventory** (`MEDIA_MANIFEST.md`), interaction sweep (scroll, click, hover, responsive)
27
+ 2. **Foundation** — fonts, globals, **`framer-motion`**, **download images & videos** to `public/` before most UI build
28
+ 3. **Component Specs** — writes detailed spec files (`docs/research/components/`) with exact CSS, **local media paths**, and **Motion** (CSS vs Framer)
29
+ 4. **Parallel Build** — dispatches builder agents in git worktrees, one per section
30
+ 5. **SaaS Rebrand Pass** — swaps product name, headlines, feature copy, CTAs, and brand marks to match `launchframe.config.json#idea`. Visuals stay 1:1.
31
+ 6. **Assembly & Visual QA** — merges worktrees, wires up the page, runs visual diff against the original
32
+
33
+ Each builder agent receives the full component spec inline — exact `getComputedStyle()` values, interaction models, multi-state content, responsive breakpoints, asset paths. No guessing.
34
+
35
+ ## Supported AI Agents
36
+
37
+ | Agent | Status |
38
+ | ------------------------------------------------------------- | -------------------------- |
39
+ | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | **Recommended** — Opus 4.7 |
40
+ | [Codex CLI](https://github.com/openai/codex) | Supported |
41
+ | [OpenCode](https://opencode.ai/) | Supported |
42
+ | [GitHub Copilot](https://github.com/features/copilot) | Supported |
43
+ | [Cursor](https://cursor.com/) | Supported |
44
+ | [Windsurf](https://codeium.com/windsurf) | Supported |
45
+ | [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Supported |
46
+ | [Cline](https://github.com/cline/cline) | Supported |
47
+ | [Roo Code](https://github.com/RooCodeInc/Roo-Code) | Supported |
48
+ | [Continue](https://continue.dev/) | Supported |
49
+ | [Amazon Q](https://aws.amazon.com/q/developer/) | Supported |
50
+ | [Augment Code](https://www.augmentcode.com/) | Supported |
51
+ | [Aider](https://aider.chat/) | Supported |
52
+
53
+ ## Tech Stack
54
+
55
+ - **Next.js 16** — App Router, React 19, TypeScript strict
56
+ - **shadcn/ui** — Radix primitives + Tailwind CSS v4
57
+ - **Tailwind CSS v4** — oklch design tokens
58
+ - **Framer Motion** — default for non-trivial marketing animation (scroll reveals, staggers, layout); see `AGENTS.md`
59
+ - **Lucide React** — default icons (replaced by extracted SVGs during cloning)
60
+ - **Media** — targets download to `public/images/` & `public/videos/` per `docs/research/MEDIA_MANIFEST.md` (see `INSPECTION_GUIDE.md`)
61
+
62
+ ## Prerequisites
63
+
64
+ - [Node.js](https://nodejs.org/) 24+
65
+ - An AI coding agent with browser automation MCP **or** [Playwright](https://playwright.dev/) for `npm run recon` when MCP is unavailable
66
+ - **First-time Playwright browsers:** after `npm install`, run `npx playwright install chromium`
67
+
68
+ ## Project Structure
69
+
70
+ ```
71
+ src/
72
+ app/ # Next.js routes
73
+ components/ # React components
74
+ ui/ # shadcn/ui primitives
75
+ icons.tsx # Extracted SVG icons
76
+ lib/utils.ts # cn() utility
77
+ types/ # TypeScript interfaces
78
+ hooks/ # Custom React hooks
79
+ public/
80
+ images/ # Downloaded images from target
81
+ videos/ # Downloaded videos from target
82
+ seo/ # Favicons, OG images
83
+ docs/
84
+ research/ # Extraction output, component specs, REBRAND.md
85
+ design-references/ # Screenshots
86
+ scripts/
87
+ sync-agent-rules.sh # Regenerate agent instruction files
88
+ sync-skills.mjs # Regenerate /clone-website for all platforms
89
+ launchframe.config.json # URL + SaaS idea (single source of truth)
90
+ AGENTS.md # Agent instructions (single source of truth)
91
+ START_HERE.md # "Open Cursor say Build it"
92
+ CLAUDE.md # Claude Code config (imports AGENTS.md)
93
+ GEMINI.md # Gemini CLI config (imports AGENTS.md)
94
+ ```
95
+
96
+ ## Commands
97
+
98
+ ```bash
99
+ npm run dev # Start dev server
100
+ npm run build # Production build
101
+ npm run lint # ESLint check
102
+ npm run typecheck # TypeScript check
103
+ npm run check # Run lint + typecheck + build
104
+ ```
105
+
106
+ ## Use Cases
107
+
108
+ - **Launch a SaaS faster** — start from a proven landing page, not a blank canvas
109
+ - **Platform migration** — rebuild a site you own from WordPress/Webflow/Squarespace into a modern Next.js codebase
110
+ - **Lost source code** — your site is live but the repo is gone; get the code back in a modern format
111
+ - **Learning** — deconstruct how production sites achieve specific layouts, animations, and responsive behavior
112
+
113
+ ## Not Intended For
114
+
115
+ - **Phishing or impersonation** this project must not be used for deceptive purposes, impersonation, or any activity that breaks the law
116
+ - **Passing off someone's design as your own** — logos, brand assets, and original copy belong to their owners
117
+ - **Violating terms of service** — some sites prohibit scraping or reproduction. Check first
118
+
119
+ ## License
120
+
121
+ MIT
@@ -1,15 +1,15 @@
1
- # Start here
2
-
3
- Launchframe wrote files into **this folder** (your project root), including **`.cursor`** and **`.claude`**, so they work when you open this directory in your editor.
4
-
5
- ## Do this next
6
-
7
- 1. **Open this folder** in [Cursor](https://cursor.com/) (the root that contains `.cursor` — not a parent directory).
8
- 2. In chat, say: **Build it.**
9
-
10
- That tells your AI to read `launchframe.config.json` and `AGENTS.md` and run the full **clone + SaaS rebrand** pipeline (same work as `/clone-website`).
11
-
12
- ## Optional
13
-
14
- - Prefer a slash command? Use **`/clone-website`** in Cursor.
15
- - Wrong URL or idea? Edit **`launchframe.config.json`**, then say **Build it** again.
1
+ # Start here
2
+
3
+ Launchframe wrote files into **this folder** (your project root), including **`.cursor`** and **`.claude`**, so they work when you open this directory in your editor.
4
+
5
+ ## Do this next
6
+
7
+ 1. **Open this folder** in [Cursor](https://cursor.com/) (the root that contains `.cursor` — not a parent directory).
8
+ 2. In chat, say: **Build it.**
9
+
10
+ That tells your AI to read `launchframe.config.json` and `AGENTS.md` and run the full **clone + SaaS rebrand** pipeline (same work as `/clone-website`).
11
+
12
+ ## Optional
13
+
14
+ - Prefer a slash command? Use **`/clone-website`** in Cursor.
15
+ - Wrong URL or idea? Edit **`launchframe.config.json`**, then say **Build it** again.
@@ -1,109 +1,109 @@
1
- # Website Inspection Guide
2
-
3
- ## Priority (read first): media & motion
4
-
5
- Launchframe clones live pages for a **visual** result. Two things most often separate a convincing build from a hollow one:
6
-
7
- ### 1. Images & video (do this before obsessing over utility classes)
8
-
9
- - [ ] **Every `<img>`** — `src` / `srcset` / `currentSrc`, `sizes`, `loading`, `decoding`, `alt`, intrinsic dimensions
10
- - [ ] **`<picture>` / `<source>`** — resolution switches, art direction, `type` (WebP/AVIF)
11
- - [ ] **Every `<video>`** — `src` + nested `<source>`, **poster**, `autoplay`, `loop`, `muted`, `playsinline`, `controls`
12
- - [ ] **Background images** — `background-image` on ancestors (hero stacks are often **layers** of img + gradient + PNG mockup)
13
- - [ ] **Lazy / below-fold** — scroll the page once before asset discovery so `data-src` / lazy-loaded URLs resolve if the site uses them
14
- - [ ] **Download** — mirror into `public/images/` and `public/videos/` with stable paths; list failures in `docs/research/EXTRACTION_LIMITATIONS.md`
15
-
16
- If automation hits a bot wall, **do not pretend extraction succeeded** — capture what you can from successful fetches and document gaps.
17
-
18
- ### 2. Motion (prefer Framer Motion in this repo)
19
-
20
- - [ ] **Entrance** — fade/slide/scale on mount or on **scroll into view** (note threshold / `margin`)
21
- - [ ] **Stagger** — children animating in sequence (hero bullets, card grids)
22
- - [ ] **Scroll-linked** — progress, parallax, pinned sections (may combine with CSS `animation-timeline` or libs)
23
- - [ ] **Gestures** — drag, pan, hover follow (often Framer Motion)
24
- - [ ] **Implementation rule** — use **`framer-motion`** for anything beyond trivial single-property CSS `transition`. Record **duration, easing, delay, stagger**, and **trigger** (scroll, hover, tap) in specs.
25
-
26
- ---
27
-
28
- ## How to Reverse-Engineer Any Website
29
-
30
- This guide outlines what to capture when inspecting a target website via Chrome MCP or browser DevTools.
31
-
32
- ## Phase 1: Visual Audit
33
-
34
- ### Screenshots to Capture
35
- - [ ] Every distinct page — desktop, tablet, mobile
36
- - [ ] Dark mode variants (if applicable)
37
- - [ ] Light mode variants (if applicable)
38
- - [ ] Key interaction states (hover, active, open menus, modals)
39
- - [ ] Loading/skeleton states
40
- - [ ] Empty states
41
- - [ ] Error states
42
- - [ ] **Video frames** — capture a frame mid-play for reference if motion is subtle
43
- - [ ] **Hero / full-bleed** — wide crops where raster layers are easy to miss
44
-
45
- ### Design Tokens to Extract
46
- - [ ] **Colors** — background, text (primary/secondary/muted), accent, border, hover, error, success, warning
47
- - [ ] **Typography** — font family, sizes (h1-h6, body, caption, label), weights, line heights, letter spacing
48
- - [ ] **Spacing** — padding/margin patterns (look for a scale: 4px, 8px, 12px, 16px, 24px, 32px, etc.)
49
- - [ ] **Border radius** — buttons, cards, avatars, inputs
50
- - [ ] **Shadows/elevation** — card shadows, dropdown shadows, modal overlay
51
- - [ ] **Breakpoints** — when does the layout shift? (inspect with DevTools responsive mode)
52
- - [ ] **Icons** — which icon library? custom SVGs? sizes?
53
- - [ ] **Avatars** — sizes, shapes, fallback behavior
54
- - [ ] **Buttons** — all variants (primary, secondary, ghost, icon-only, danger)
55
- - [ ] **Inputs** — text fields, textareas, selects, checkboxes, toggles
56
-
57
- ## Phase 2: Component Inventory
58
-
59
- For each distinct UI component, document:
60
- 1. **Name** — what would you call this component?
61
- 2. **Structure** — what HTML elements / child components does it contain?
62
- 3. **Variants** — does it have different sizes, colors, or states?
63
- 4. **States** — default, hover, active, disabled, loading, error, empty
64
- 5. **Responsive behavior** — how does it change at different breakpoints?
65
- 6. **Interactions** — click, hover, focus, keyboard navigation
66
- 7. **Animations** — transitions, entrance/exit, micro-interactions — **`framer-motion` vs CSS** and exact timing
67
-
68
- ### Common Components to Look For
69
- - Navigation (top bar, sidebar, bottom bar)
70
- - Cards / list items
71
- - Buttons and links
72
- - Forms and inputs
73
- - Modals and dialogs
74
- - Dropdowns and menus
75
- - Tabs and segmented controls
76
- - Avatars and user badges
77
- - Loading skeletons
78
- - Toast notifications
79
- - Tooltips and popovers
80
- - **Video / Lottie / canvas** blocks (do not substitute with static mockups without documenting why)
81
-
82
- ## Phase 3: Layout Architecture
83
-
84
- - [ ] **Grid system** — CSS Grid? Flexbox? Fixed widths?
85
- - [ ] **Column layout** — how many columns at each breakpoint?
86
- - [ ] **Max-width** — main content area max-width
87
- - [ ] **Sticky elements** — header, sidebar, floating buttons
88
- - [ ] **Z-index layers** — navigation, modals, tooltips, overlays
89
- - [ ] **Scroll behavior** — infinite scroll, pagination, virtual scrolling
90
-
91
- ## Phase 4: Technical Stack Analysis
92
-
93
- - [ ] **Framework** — React? Vue? Angular? Check `__NEXT_DATA__`, `__NUXT__`, `ng-version`
94
- - [ ] **CSS approach** — Tailwind (utility classes), CSS Modules, Styled Components, Emotion, vanilla CSS
95
- - [ ] **State management** — Redux (check DevTools), React Query, Zustand, Pinia
96
- - [ ] **API patterns** — REST, GraphQL (check network tab for `/graphql` requests)
97
- - [ ] **Font loading** — Google Fonts, self-hosted, system fonts
98
- - [ ] **Image strategy** — CDN, lazy loading, srcset, WebP/AVIF — **mirror URLs you are allowed to fetch**
99
- - [ ] **Animation library** — site may use GSAP, Lottie, Rive, or CSS only — **in the Next.js clone, default to Framer Motion** unless a different lib is required for parity
100
-
101
- ## Phase 5: Documentation Output
102
-
103
- After inspection, create these files in `docs/research/`:
104
- 1. `DESIGN_TOKENS.md` — All extracted colors, typography, spacing
105
- 2. `COMPONENT_INVENTORY.md` — Every component with structure notes
106
- 3. **`MEDIA_MANIFEST.md`** — (recommended) Table of every image/video/poster URL → local `public/` path or “blocked”
107
- 4. `LAYOUT_ARCHITECTURE.md` — Page layouts, grid system, responsive behavior
108
- 5. `INTERACTION_PATTERNS.md` — Animations: **CSS vs Framer Motion**, transitions, hover states
109
- 6. `TECH_STACK_ANALYSIS.md` — What the site uses and our chosen equivalents (Framer Motion for React animation)
1
+ # Website Inspection Guide
2
+
3
+ ## Priority (read first): media & motion
4
+
5
+ Launchframe clones live pages for a **visual** result. Two things most often separate a convincing build from a hollow one:
6
+
7
+ ### 1. Images & video (do this before obsessing over utility classes)
8
+
9
+ - [ ] **Every `<img>`** — `src` / `srcset` / `currentSrc`, `sizes`, `loading`, `decoding`, `alt`, intrinsic dimensions
10
+ - [ ] **`<picture>` / `<source>`** — resolution switches, art direction, `type` (WebP/AVIF)
11
+ - [ ] **Every `<video>`** — `src` + nested `<source>`, **poster**, `autoplay`, `loop`, `muted`, `playsinline`, `controls`
12
+ - [ ] **Background images** — `background-image` on ancestors (hero stacks are often **layers** of img + gradient + PNG mockup)
13
+ - [ ] **Lazy / below-fold** — scroll the page once before asset discovery so `data-src` / lazy-loaded URLs resolve if the site uses them
14
+ - [ ] **Download** — mirror into `public/images/` and `public/videos/` with stable paths; list failures in `docs/research/EXTRACTION_LIMITATIONS.md`
15
+
16
+ If automation hits a bot wall, **do not pretend extraction succeeded** — capture what you can from successful fetches and document gaps.
17
+
18
+ ### 2. Motion (prefer Framer Motion in this repo)
19
+
20
+ - [ ] **Entrance** — fade/slide/scale on mount or on **scroll into view** (note threshold / `margin`)
21
+ - [ ] **Stagger** — children animating in sequence (hero bullets, card grids)
22
+ - [ ] **Scroll-linked** — progress, parallax, pinned sections (may combine with CSS `animation-timeline` or libs)
23
+ - [ ] **Gestures** — drag, pan, hover follow (often Framer Motion)
24
+ - [ ] **Implementation rule** — use **`framer-motion`** for anything beyond trivial single-property CSS `transition`. Record **duration, easing, delay, stagger**, and **trigger** (scroll, hover, tap) in specs.
25
+
26
+ ---
27
+
28
+ ## How to Reverse-Engineer Any Website
29
+
30
+ This guide outlines what to capture when inspecting a target website via Chrome MCP or browser DevTools.
31
+
32
+ ## Phase 1: Visual Audit
33
+
34
+ ### Screenshots to Capture
35
+ - [ ] Every distinct page — desktop, tablet, mobile
36
+ - [ ] Dark mode variants (if applicable)
37
+ - [ ] Light mode variants (if applicable)
38
+ - [ ] Key interaction states (hover, active, open menus, modals)
39
+ - [ ] Loading/skeleton states
40
+ - [ ] Empty states
41
+ - [ ] Error states
42
+ - [ ] **Video frames** — capture a frame mid-play for reference if motion is subtle
43
+ - [ ] **Hero / full-bleed** — wide crops where raster layers are easy to miss
44
+
45
+ ### Design Tokens to Extract
46
+ - [ ] **Colors** — background, text (primary/secondary/muted), accent, border, hover, error, success, warning
47
+ - [ ] **Typography** — font family, sizes (h1-h6, body, caption, label), weights, line heights, letter spacing
48
+ - [ ] **Spacing** — padding/margin patterns (look for a scale: 4px, 8px, 12px, 16px, 24px, 32px, etc.)
49
+ - [ ] **Border radius** — buttons, cards, avatars, inputs
50
+ - [ ] **Shadows/elevation** — card shadows, dropdown shadows, modal overlay
51
+ - [ ] **Breakpoints** — when does the layout shift? (inspect with DevTools responsive mode)
52
+ - [ ] **Icons** — which icon library? custom SVGs? sizes?
53
+ - [ ] **Avatars** — sizes, shapes, fallback behavior
54
+ - [ ] **Buttons** — all variants (primary, secondary, ghost, icon-only, danger)
55
+ - [ ] **Inputs** — text fields, textareas, selects, checkboxes, toggles
56
+
57
+ ## Phase 2: Component Inventory
58
+
59
+ For each distinct UI component, document:
60
+ 1. **Name** — what would you call this component?
61
+ 2. **Structure** — what HTML elements / child components does it contain?
62
+ 3. **Variants** — does it have different sizes, colors, or states?
63
+ 4. **States** — default, hover, active, disabled, loading, error, empty
64
+ 5. **Responsive behavior** — how does it change at different breakpoints?
65
+ 6. **Interactions** — click, hover, focus, keyboard navigation
66
+ 7. **Animations** — transitions, entrance/exit, micro-interactions — **`framer-motion` vs CSS** and exact timing
67
+
68
+ ### Common Components to Look For
69
+ - Navigation (top bar, sidebar, bottom bar)
70
+ - Cards / list items
71
+ - Buttons and links
72
+ - Forms and inputs
73
+ - Modals and dialogs
74
+ - Dropdowns and menus
75
+ - Tabs and segmented controls
76
+ - Avatars and user badges
77
+ - Loading skeletons
78
+ - Toast notifications
79
+ - Tooltips and popovers
80
+ - **Video / Lottie / canvas** blocks (do not substitute with static mockups without documenting why)
81
+
82
+ ## Phase 3: Layout Architecture
83
+
84
+ - [ ] **Grid system** — CSS Grid? Flexbox? Fixed widths?
85
+ - [ ] **Column layout** — how many columns at each breakpoint?
86
+ - [ ] **Max-width** — main content area max-width
87
+ - [ ] **Sticky elements** — header, sidebar, floating buttons
88
+ - [ ] **Z-index layers** — navigation, modals, tooltips, overlays
89
+ - [ ] **Scroll behavior** — infinite scroll, pagination, virtual scrolling
90
+
91
+ ## Phase 4: Technical Stack Analysis
92
+
93
+ - [ ] **Framework** — React? Vue? Angular? Check `__NEXT_DATA__`, `__NUXT__`, `ng-version`
94
+ - [ ] **CSS approach** — Tailwind (utility classes), CSS Modules, Styled Components, Emotion, vanilla CSS
95
+ - [ ] **State management** — Redux (check DevTools), React Query, Zustand, Pinia
96
+ - [ ] **API patterns** — REST, GraphQL (check network tab for `/graphql` requests)
97
+ - [ ] **Font loading** — Google Fonts, self-hosted, system fonts
98
+ - [ ] **Image strategy** — CDN, lazy loading, srcset, WebP/AVIF — **mirror URLs you are allowed to fetch**
99
+ - [ ] **Animation library** — site may use GSAP, Lottie, Rive, or CSS only — **in the Next.js clone, default to Framer Motion** unless a different lib is required for parity
100
+
101
+ ## Phase 5: Documentation Output
102
+
103
+ After inspection, create these files in `docs/research/`:
104
+ 1. `DESIGN_TOKENS.md` — All extracted colors, typography, spacing
105
+ 2. `COMPONENT_INVENTORY.md` — Every component with structure notes
106
+ 3. **`MEDIA_MANIFEST.md`** — (recommended) Table of every image/video/poster URL → local `public/` path or “blocked”
107
+ 4. `LAYOUT_ARCHITECTURE.md` — Page layouts, grid system, responsive behavior
108
+ 5. `INTERACTION_PATTERNS.md` — Animations: **CSS vs Framer Motion**, transitions, hover states
109
+ 6. `TECH_STACK_ANALYSIS.md` — What the site uses and our chosen equivalents (Framer Motion for React animation)
@@ -1,60 +1,63 @@
1
- {
2
- "name": "ai-website-clone-template",
3
- "version": "0.3.1",
4
- "private": true,
5
- "description": "Clone any website into a clean, modern Next.js codebase using AI coding agents",
6
- "author": "JCodesMore",
7
- "license": "MIT",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/JCodesMore/ai-website-cloner-template.git"
11
- },
12
- "homepage": "https://github.com/JCodesMore/ai-website-cloner-template",
13
- "bugs": {
14
- "url": "https://github.com/JCodesMore/ai-website-cloner-template/issues"
15
- },
16
- "keywords": [
17
- "claude-code",
18
- "website-clone",
19
- "reverse-engineering",
20
- "nextjs",
21
- "ai",
22
- "template",
23
- "tailwindcss",
24
- "shadcn-ui"
25
- ],
26
- "engines": {
27
- "node": ">=24"
28
- },
29
- "scripts": {
30
- "dev": "next dev",
31
- "build": "next build",
32
- "start": "next start",
33
- "lint": "eslint",
34
- "typecheck": "tsc --noEmit",
35
- "check": "npm run lint && npm run typecheck && npm run build"
36
- },
37
- "dependencies": {
38
- "@base-ui/react": "^1.3.0",
39
- "class-variance-authority": "^0.7.1",
40
- "clsx": "^2.1.1",
41
- "framer-motion": "^12.4.0",
42
- "lucide-react": "^1.6.0",
43
- "next": "16.2.1",
44
- "react": "19.2.4",
45
- "react-dom": "19.2.4",
46
- "shadcn": "^4.1.0",
47
- "tailwind-merge": "^3.5.0",
48
- "tw-animate-css": "^1.4.0"
49
- },
50
- "devDependencies": {
51
- "@tailwindcss/postcss": "^4",
52
- "@types/node": "^24",
53
- "@types/react": "^19",
54
- "@types/react-dom": "^19",
55
- "eslint": "^9",
56
- "eslint-config-next": "16.2.1",
57
- "tailwindcss": "^4",
58
- "typescript": "^5"
59
- }
60
- }
1
+ {
2
+ "name": "ai-website-clone-template",
3
+ "version": "0.3.1",
4
+ "private": true,
5
+ "description": "Clone any website into a clean, modern Next.js codebase using AI coding agents",
6
+ "author": "JCodesMore",
7
+ "license": "MIT",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/JCodesMore/ai-website-cloner-template.git"
11
+ },
12
+ "homepage": "https://github.com/JCodesMore/ai-website-cloner-template",
13
+ "bugs": {
14
+ "url": "https://github.com/JCodesMore/ai-website-cloner-template/issues"
15
+ },
16
+ "keywords": [
17
+ "claude-code",
18
+ "website-clone",
19
+ "reverse-engineering",
20
+ "nextjs",
21
+ "ai",
22
+ "template",
23
+ "tailwindcss",
24
+ "shadcn-ui"
25
+ ],
26
+ "engines": {
27
+ "node": ">=24"
28
+ },
29
+ "scripts": {
30
+ "dev": "next dev",
31
+ "build": "next build",
32
+ "start": "next start",
33
+ "lint": "eslint",
34
+ "typecheck": "tsc --noEmit",
35
+ "check": "npm run lint && npm run typecheck && npm run build",
36
+ "recon": "node scripts/recon-playwright.mjs",
37
+ "recon:headed": "node scripts/recon-playwright.mjs --headed"
38
+ },
39
+ "dependencies": {
40
+ "@base-ui/react": "^1.3.0",
41
+ "class-variance-authority": "^0.7.1",
42
+ "clsx": "^2.1.1",
43
+ "framer-motion": "^12.4.0",
44
+ "lucide-react": "^1.6.0",
45
+ "next": "16.2.1",
46
+ "react": "19.2.4",
47
+ "react-dom": "19.2.4",
48
+ "shadcn": "^4.1.0",
49
+ "tailwind-merge": "^3.5.0",
50
+ "tw-animate-css": "^1.4.0"
51
+ },
52
+ "devDependencies": {
53
+ "@tailwindcss/postcss": "^4",
54
+ "@types/node": "^24",
55
+ "@types/react": "^19",
56
+ "@types/react-dom": "^19",
57
+ "eslint": "^9",
58
+ "eslint-config-next": "16.2.1",
59
+ "playwright": "^1.49.1",
60
+ "tailwindcss": "^4",
61
+ "typescript": "^5"
62
+ }
63
+ }