launchframe 0.2.3 → 0.2.5

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.
Files changed (31) hide show
  1. package/README.md +147 -147
  2. package/bin/launchframe.mjs +315 -315
  3. package/package.json +1 -1
  4. package/template/.amazonq/cli-agents/clone-website.json +1 -1
  5. package/template/.amazonq/rules/project.md +180 -109
  6. package/template/.augment/commands/clone-website.md +33 -3
  7. package/template/.claude/skills/clone-website/SKILL.md +564 -534
  8. package/template/.claude/skills/marketing-landing-production/SKILL.md +36 -0
  9. package/template/.clinerules +180 -109
  10. package/template/.codex/skills/clone-website/SKILL.md +33 -3
  11. package/template/.continue/commands/clone-website.md +33 -3
  12. package/template/.continue/rules/project.md +180 -109
  13. package/template/.cursor/commands/clone-website.md +33 -3
  14. package/template/.cursor/commands/marketing-landing-production.md +31 -0
  15. package/template/.cursor/rules/project.mdc +25 -20
  16. package/template/.gemini/commands/clone-website.toml +33 -3
  17. package/template/.github/copilot-instructions.md +180 -109
  18. package/template/.github/skills/clone-website/SKILL.md +33 -3
  19. package/template/.opencode/commands/clone-website.md +33 -3
  20. package/template/.windsurf/workflows/clone-website.md +33 -3
  21. package/template/AGENTS.md +148 -89
  22. package/template/README.md +121 -120
  23. package/template/START_HERE.md +15 -15
  24. package/template/docs/design-references/playwright-example.com-1440px.png +0 -0
  25. package/template/docs/design-references/playwright-example.com-390px.png +0 -0
  26. package/template/docs/research/INSPECTION_GUIDE.md +121 -109
  27. package/template/package.json +63 -60
  28. package/template/scripts/recon-playwright.mjs +323 -0
  29. package/template/src/app/globals.css +93 -1
  30. package/template/src/app/layout.tsx +3 -2
  31. package/template/src/app/page.tsx +3 -7
@@ -1,109 +1,121 @@
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
+ ### 3. Illustration, pixel art & brand motifs *(production landings)*
27
+
28
+ When the reference page is **sparse** (mostly type + gray boxes) or after a **rebrand** the UI still reads generic, treat illustration as required inventory — not optional garnish.
29
+
30
+ - [ ] **Inline SVG** hero shapes, dividers, card mini-scenes; note `viewBox`, whether fills use **`currentColor`**, and which CSS variables apply
31
+ - [ ] **Pixel art / sprite accents** — intentional palette (list hex fills), grid size, scaling strategy (`imageRendering`), animation frames if any
32
+ - [ ] **Motif thread** — recurring stroke/icon creature/grid that should echo across hero, OG sketch, favicon
33
+ - [ ] **Accent tokens** — beyond monochrome: primary/secondary accent roles for SVG strokes, CTAs, focus (extract or **define** in `:root` for authored pages)
34
+ - [ ] **Motion tiers A–E** — page-load stagger, scroll reveals + staggerChildren, looping ambient (marquee/caret), hover lifts, decorative parallax — document each with **reduced-motion** fallback (`prefers-reduced-motion`)
35
+
36
+ See **`AGENTS.md` Production polish for marketing landings** for tier definitions and folder conventions (`src/components/marketing/art/`).
37
+
38
+ ---
39
+
40
+ ## How to Reverse-Engineer Any Website
41
+
42
+ This guide outlines what to capture when inspecting a target website via Chrome MCP or browser DevTools.
43
+
44
+ ## Phase 1: Visual Audit
45
+
46
+ ### Screenshots to Capture
47
+ - [ ] Every distinct page desktop, tablet, mobile
48
+ - [ ] Dark mode variants (if applicable)
49
+ - [ ] Light mode variants (if applicable)
50
+ - [ ] Key interaction states (hover, active, open menus, modals)
51
+ - [ ] Loading/skeleton states
52
+ - [ ] Empty states
53
+ - [ ] Error states
54
+ - [ ] **Video frames** — capture a frame mid-play for reference if motion is subtle
55
+ - [ ] **Hero / full-bleed** — wide crops where raster layers are easy to miss
56
+
57
+ ### Design Tokens to Extract
58
+ - [ ] **Colors** — background, text (primary/secondary/muted), accent, border, hover, error, success, warning
59
+ - [ ] **Typography** — font family, sizes (h1-h6, body, caption, label), weights, line heights, letter spacing
60
+ - [ ] **Spacing** — padding/margin patterns (look for a scale: 4px, 8px, 12px, 16px, 24px, 32px, etc.)
61
+ - [ ] **Border radius** — buttons, cards, avatars, inputs
62
+ - [ ] **Shadows/elevation** — card shadows, dropdown shadows, modal overlay
63
+ - [ ] **Breakpoints** — when does the layout shift? (inspect with DevTools responsive mode)
64
+ - [ ] **Icons**which icon library? custom SVGs? sizes?
65
+ - [ ] **Avatars** — sizes, shapes, fallback behavior
66
+ - [ ] **Buttons** — all variants (primary, secondary, ghost, icon-only, danger)
67
+ - [ ] **Inputs** — text fields, textareas, selects, checkboxes, toggles
68
+
69
+ ## Phase 2: Component Inventory
70
+
71
+ For each distinct UI component, document:
72
+ 1. **Name** what would you call this component?
73
+ 2. **Structure** what HTML elements / child components does it contain?
74
+ 3. **Variants** does it have different sizes, colors, or states?
75
+ 4. **States** default, hover, active, disabled, loading, error, empty
76
+ 5. **Responsive behavior** how does it change at different breakpoints?
77
+ 6. **Interactions** — click, hover, focus, keyboard navigation
78
+ 7. **Animations** — transitions, entrance/exit, micro-interactions **`framer-motion` vs CSS** and exact timing
79
+
80
+ ### Common Components to Look For
81
+ - Navigation (top bar, sidebar, bottom bar)
82
+ - Cards / list items
83
+ - Buttons and links
84
+ - Forms and inputs
85
+ - Modals and dialogs
86
+ - Dropdowns and menus
87
+ - Tabs and segmented controls
88
+ - Avatars and user badges
89
+ - Loading skeletons
90
+ - Toast notifications
91
+ - Tooltips and popovers
92
+ - **Video / Lottie / canvas** blocks (do not substitute with static mockups without documenting why)
93
+
94
+ ## Phase 3: Layout Architecture
95
+
96
+ - [ ] **Grid system** — CSS Grid? Flexbox? Fixed widths?
97
+ - [ ] **Column layout** — how many columns at each breakpoint?
98
+ - [ ] **Max-width** — main content area max-width
99
+ - [ ] **Sticky elements** — header, sidebar, floating buttons
100
+ - [ ] **Z-index layers** — navigation, modals, tooltips, overlays
101
+ - [ ] **Scroll behavior** — infinite scroll, pagination, virtual scrolling
102
+
103
+ ## Phase 4: Technical Stack Analysis
104
+
105
+ - [ ] **Framework** React? Vue? Angular? Check `__NEXT_DATA__`, `__NUXT__`, `ng-version`
106
+ - [ ] **CSS approach** Tailwind (utility classes), CSS Modules, Styled Components, Emotion, vanilla CSS
107
+ - [ ] **State management** Redux (check DevTools), React Query, Zustand, Pinia
108
+ - [ ] **API patterns** REST, GraphQL (check network tab for `/graphql` requests)
109
+ - [ ] **Font loading** Google Fonts, self-hosted, system fonts
110
+ - [ ] **Image strategy** — CDN, lazy loading, srcset, WebP/AVIF — **mirror URLs you are allowed to fetch**
111
+ - [ ] **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
112
+
113
+ ## Phase 5: Documentation Output
114
+
115
+ After inspection, create these files in `docs/research/`:
116
+ 1. `DESIGN_TOKENS.md` — All extracted colors, typography, spacing
117
+ 2. `COMPONENT_INVENTORY.md` — Every component with structure notes
118
+ 3. **`MEDIA_MANIFEST.md`** — (recommended) Table of every image/video/poster URL → local `public/` path or “blocked”
119
+ 4. `LAYOUT_ARCHITECTURE.md` — Page layouts, grid system, responsive behavior
120
+ 5. `INTERACTION_PATTERNS.md` — Animations: **CSS vs Framer Motion**, transitions, hover states
121
+ 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
+ }