launchframe 0.3.0 → 0.4.0
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.
- package/.claude/skills/clone-website/SKILL.md +473 -564
- package/.clinerules +147 -285
- package/.codex/skills/clone-website/SKILL.md +473 -564
- package/.continue/commands/clone-website.md +475 -566
- package/.continue/rules/project.md +151 -285
- package/.cursor/commands/clone-website.md +470 -561
- package/.cursor/rules/project.mdc +7 -22
- package/.gemini/commands/clone-website.toml +476 -567
- package/.github/copilot-instructions.md +147 -281
- package/.github/skills/clone-website/SKILL.md +473 -564
- package/.gitignore +49 -0
- package/.opencode/commands/clone-website.md +473 -564
- package/.windsurf/workflows/clone-website.md +470 -561
- package/AGENTS.md +65 -160
- package/README.md +162 -121
- package/bin/launchframe.mjs +343 -0
- package/docs/research/INSPECTION_GUIDE.md +80 -124
- package/package.json +97 -54
- package/src/app/globals.css +1 -93
- package/src/app/layout.tsx +16 -5
- package/src/app/page.tsx +37 -2
- package/src/lib/launchframe-config.ts +8 -0
- package/.amazonq/cli-agents/clone-website.json +0 -9
- package/.amazonq/rules/project.md +0 -281
- package/.augment/commands/clone-website.md +0 -565
- package/.claude/skills/marketing-social-proof-motion/SKILL.md +0 -47
- package/.cursor/commands/marketing-social-proof-motion.md +0 -42
- package/.nvmrc +0 -1
- package/CHANGELOG.md +0 -80
- package/START_HERE.md +0 -15
- package/docs/design-references/playwright-example.com-1440px.png +0 -0
- package/docs/design-references/playwright-example.com-390px.png +0 -0
- package/launchframe.config.json +0 -14
- package/public/images/.gitkeep +0 -0
- package/public/seo/.gitkeep +0 -0
- package/public/videos/.gitkeep +0 -0
- package/scripts/recon-playwright.mjs +0 -396
- package/src/components/marketing/scribewise-landing.tsx +0 -34
package/AGENTS.md
CHANGED
|
@@ -1,160 +1,65 @@
|
|
|
1
|
-
<!-- BEGIN:nextjs-agent-rules -->
|
|
2
|
-
# This is NOT the Next.js you know
|
|
3
|
-
|
|
4
|
-
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices.
|
|
5
|
-
<!-- END:nextjs-agent-rules -->
|
|
6
|
-
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
## What This Is
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
##
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|------|-----------------|-------------------------|
|
|
67
|
-
| **A — Page load** | Hero headline, subcopy, CTAs, and hero art **stagger in** (opacity + `y`, or blur-in for type) | Parent `variants` + `staggerChildren`; durations 0.35–0.7s, ease `[0.22, 1, 0.36, 1]` or springs |
|
|
68
|
-
| **B — Scroll** | Sections **ease up / fade** on first viewport entry; grids **stagger cards** | `whileInView` + `viewport.once`; `margin: "-80px"` tweak so reveals feel early |
|
|
69
|
-
| **C — Looping ambient** | Logo strip marquee; gradient drift; subtle SVG stroke dashoffset loop; “thinking…” **typing caret** | CSS `@keyframes` or Framer `animate` repeat; keep amplitude **low** |
|
|
70
|
-
| **D — Interaction** | Buttons scale/shine on hover; cards **lift** (`translateY`, shadow); nav **backdrop blur / height** past threshold | `whileHover`, `whileTap`; scroll listener or Framer scroll hooks for nav |
|
|
71
|
-
| **E — Decorative depth** | Pointer parallax on hero cluster (2–4 layers at different strengths) OR scroll-linked `useTransform` | Small rotate/translate ranges (≤ 8px / ≤ 2deg) |
|
|
72
|
-
|
|
73
|
-
Always gate looping motion: **`useReducedMotion()`** from Framer Motion — swap loops for static frames and shorten entrances.
|
|
74
|
-
|
|
75
|
-
### Brandability checklist *(distinctive, not generic SaaS gray)*
|
|
76
|
-
|
|
77
|
-
- **Motif thread** — One recurring visual hook (pen stroke, folded page corner, hub spark, pixel creature) reused in hero, favicon, OG image sketch, and one feature illustration.
|
|
78
|
-
- **Accent discipline** — Define **primary + secondary accent** in `:root` (even if mostly monochrome). Use accents on CTAs, SVG highlights, focus rings — not rainbow scatter.
|
|
79
|
-
- **Wordmark lockup** — SVG glyph + tracked type; provide **icon-only** variant for favicon / meta.
|
|
80
|
-
- **OG & SEO assets** — Generate **`public/seo/og.png`** (or route og image) that includes motif + product name — not a bare screenshot.
|
|
81
|
-
|
|
82
|
-
### Where artifacts live
|
|
83
|
-
|
|
84
|
-
- **Raster/video** — `public/images/`, `public/videos/` (see `MEDIA_MANIFEST.md`).
|
|
85
|
-
- **SVG React illustrations** — Prefer `src/components/marketing/art/` or co-located `*-scene.tsx` modules; export named components (`HeroBackdrop`, `FeatureCaptureIllustration`).
|
|
86
|
-
- **Pixel art** — Same folder pattern; document palette in file header comment.
|
|
87
|
-
|
|
88
|
-
### Spec requirement *(hand-off quality)*
|
|
89
|
-
|
|
90
|
-
When writing `docs/research/components/*.spec.md`, add sections **Illustration** (**Idea tie-in** per asset, layers, SVG components, raster paths) and expand **Motion** with tier **A–E** coverage and reduced-motion fallback. Builders should not invent motion ad hoc — the spec states durations and triggers.
|
|
91
|
-
|
|
92
|
-
## Commands
|
|
93
|
-
- `npm run dev` — Start dev server
|
|
94
|
-
- `npm run build` — Production build
|
|
95
|
-
- `npm run lint` — ESLint check
|
|
96
|
-
- `npm run typecheck` — TypeScript check
|
|
97
|
-
- `npm run check` — Run lint + typecheck + build
|
|
98
|
-
- **`npm run recon`** — **Playwright**: stabilized **full-document** scrolling at **desktop + mobile**, merged **`computed-snapshot.json`** + **`MEDIA_MANIFEST.md`**, **full-page** screenshots under `docs/design-references/` (use when Browser MCP / Chrome DevTools MCP is broken or missing)
|
|
99
|
-
- **`npm run recon:headed`** — Same as `recon` but **headed** Chromium (often better for WAF / “Just a moment…” pages)
|
|
100
|
-
|
|
101
|
-
**Playwright browser binaries (once per machine):** `npx playwright install chromium`
|
|
102
|
-
|
|
103
|
-
## When Browser MCP is down
|
|
104
|
-
Prefer **Playwright** for repeatable extraction in-repo — do **not** rely on Chrome DevTools MCP alone.
|
|
105
|
-
|
|
106
|
-
### Full landing coverage (agents + automation)
|
|
107
|
-
|
|
108
|
-
Whether using MCP or Playwright, extraction must cover the **entire visible landing** (hero → footer): slow-scroll until lazy content settles, then **`fullPage`** screenshots — never treat “what fits in one viewport” as sufficient for inventory or specs.
|
|
109
|
-
|
|
110
|
-
1. Run **`npm run recon`** (or **`npm run recon:headed`** if headless hits a challenge page).
|
|
111
|
-
2. Read **`docs/research/computed-snapshot.json`**, **`docs/research/MEDIA_MANIFEST.md`**, and **`docs/research/EXTRACTION_LIMITATIONS.md`** before writing specs.
|
|
112
|
-
3. Fill **`scripts/download-assets.mjs`** from `MEDIA_MANIFEST.md` and run it to populate `public/images/` and `public/videos/`.
|
|
113
|
-
|
|
114
|
-
## Code Style
|
|
115
|
-
- TypeScript strict mode, no `any`
|
|
116
|
-
- Named exports, PascalCase components, camelCase utils
|
|
117
|
-
- Tailwind utility classes, no inline styles
|
|
118
|
-
- 2-space indentation
|
|
119
|
-
- Responsive: mobile-first
|
|
120
|
-
|
|
121
|
-
## Design Principles
|
|
122
|
-
- **Images & video fidelity** — prefer real downloaded assets; preserve aspect ratio, `object-fit`, layering, and poster frames. Rebrand pass may **swap** URLs for IP-safe alternates but must keep layout identical.
|
|
123
|
-
- **Motion fidelity** — timing and easing matter as much as color; use Framer Motion when CSS alone cannot match staggered or scroll-driven behavior.
|
|
124
|
-
- **Idea-specific imagery** — Marketing art (SVG, raster, OG) must be **tailored to `launchframe.config.json#idea`**: explicit metaphors, per-asset **Idea tie-in** notes, and **no interchangeable filler** that could belong to any generic SaaS.
|
|
125
|
-
- **Production landing density** — For authored/minimal pages, deliberately add **idea-specific** illustration (not generic SaaS filler), **pixel-art accents** when they reinforce the metaphor, and **tiered motion (A–E)** per “Production polish” above; static monochrome layouts are incomplete unless the user explicitly wants extreme minimalism.
|
|
126
|
-
- **Pixel-perfect emulation** — match the target's spacing, colors, typography exactly
|
|
127
|
-
- **No personal aesthetic changes during emulation phase** — match 1:1 first, rebrand later
|
|
128
|
-
- **Real content during extraction** — use actual text and assets from the target site so the clone scaffolds against real shapes
|
|
129
|
-
- **Rebrand pass swaps copy, not visuals** — once the clone is built, replace product name, headlines, feature copy, and brand marks with content tuned to `launchframe.config.json#idea`. Do NOT alter spacing, color tokens, typography scale, animations, or responsive breakpoints during the rebrand.
|
|
130
|
-
- **Beauty-first** — every pixel matters
|
|
131
|
-
|
|
132
|
-
## Project Structure
|
|
133
|
-
```
|
|
134
|
-
src/
|
|
135
|
-
app/ # Next.js routes
|
|
136
|
-
components/ # React components
|
|
137
|
-
ui/ # shadcn/ui primitives
|
|
138
|
-
marketing/ # Landing sections + authored SVG scenes (`art/` recommended)
|
|
139
|
-
icons.tsx # Extracted SVG icons as React components
|
|
140
|
-
lib/
|
|
141
|
-
utils.ts # cn() utility (shadcn)
|
|
142
|
-
types/ # TypeScript interfaces
|
|
143
|
-
hooks/ # Custom React hooks
|
|
144
|
-
public/
|
|
145
|
-
images/ # Downloaded images from target site
|
|
146
|
-
videos/ # Downloaded videos from target site
|
|
147
|
-
seo/ # Favicons, OG images, webmanifest
|
|
148
|
-
docs/
|
|
149
|
-
research/ # Inspection output (design tokens, components, layout)
|
|
150
|
-
design-references/ # Screenshots and visual references
|
|
151
|
-
scripts/ # Asset download scripts
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
## MOST IMPORTANT NOTES
|
|
155
|
-
- **Always start by reading `launchframe.config.json`** — that file dictates the URL to clone and the SaaS idea to re-skin for.
|
|
156
|
-
- When launching Claude Code agent teams, ALWAYS have each teammate work in their own worktree branch and merge everyone's work at the end, resolving any merge conflicts smartly since you are basically serving the orchestrator role and have full context to our goals, work given, work achieved, and desired outcomes.
|
|
157
|
-
- After editing `AGENTS.md`, run `bash scripts/sync-agent-rules.sh` to regenerate platform-specific instruction files.
|
|
158
|
-
- After editing `.claude/skills/clone-website/SKILL.md`, run `node scripts/sync-skills.mjs` to regenerate the skill for all platforms.
|
|
159
|
-
|
|
160
|
-
@docs/research/INSPECTION_GUIDE.md
|
|
1
|
+
<!-- BEGIN:nextjs-agent-rules -->
|
|
2
|
+
# This is NOT the Next.js you know
|
|
3
|
+
|
|
4
|
+
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices.
|
|
5
|
+
<!-- END:nextjs-agent-rules -->
|
|
6
|
+
|
|
7
|
+
# Website Reverse-Engineer Template
|
|
8
|
+
|
|
9
|
+
## What This Is
|
|
10
|
+
A reusable template for reverse-engineering any website into a clean, modern Next.js codebase using AI coding agents. The Next.js + shadcn/ui + Tailwind v4 base is pre-scaffolded — just run `/clone-website <url1> [<url2> ...]`.
|
|
11
|
+
|
|
12
|
+
## Tech Stack
|
|
13
|
+
- **Framework:** Next.js 16 (App Router, React 19, TypeScript strict)
|
|
14
|
+
- **UI:** shadcn/ui (Radix primitives, Tailwind CSS v4, `cn()` utility)
|
|
15
|
+
- **Icons:** Lucide React (default — will be replaced/supplemented by extracted SVGs)
|
|
16
|
+
- **Styling:** Tailwind CSS v4 with oklch design tokens
|
|
17
|
+
- **Deployment:** Vercel
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
- `npm run dev` — Start dev server
|
|
21
|
+
- `npm run build` — Production build
|
|
22
|
+
- `npm run lint` — ESLint check
|
|
23
|
+
- `npm run typecheck` — TypeScript check
|
|
24
|
+
- `npm run check` — Run lint + typecheck + build
|
|
25
|
+
|
|
26
|
+
## Code Style
|
|
27
|
+
- TypeScript strict mode, no `any`
|
|
28
|
+
- Named exports, PascalCase components, camelCase utils
|
|
29
|
+
- Tailwind utility classes, no inline styles
|
|
30
|
+
- 2-space indentation
|
|
31
|
+
- Responsive: mobile-first
|
|
32
|
+
|
|
33
|
+
## Design Principles
|
|
34
|
+
- **Pixel-perfect emulation** — match the target's spacing, colors, typography exactly
|
|
35
|
+
- **No personal aesthetic changes during emulation phase** — match 1:1 first, customize later
|
|
36
|
+
- **Real content** — use actual text and assets from the target site, not placeholders
|
|
37
|
+
- **Beauty-first** — every pixel matters
|
|
38
|
+
|
|
39
|
+
## Project Structure
|
|
40
|
+
```
|
|
41
|
+
src/
|
|
42
|
+
app/ # Next.js routes
|
|
43
|
+
components/ # React components
|
|
44
|
+
ui/ # shadcn/ui primitives
|
|
45
|
+
icons.tsx # Extracted SVG icons as React components
|
|
46
|
+
lib/
|
|
47
|
+
utils.ts # cn() utility (shadcn)
|
|
48
|
+
types/ # TypeScript interfaces
|
|
49
|
+
hooks/ # Custom React hooks
|
|
50
|
+
public/
|
|
51
|
+
images/ # Downloaded images from target site
|
|
52
|
+
videos/ # Downloaded videos from target site
|
|
53
|
+
seo/ # Favicons, OG images, webmanifest
|
|
54
|
+
docs/
|
|
55
|
+
research/ # Inspection output (design tokens, components, layout)
|
|
56
|
+
design-references/ # Screenshots and visual references
|
|
57
|
+
scripts/ # Asset download scripts
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## MOST IMPORTANT NOTES
|
|
61
|
+
- When launching Claude Code agent teams, ALWAYS have each teammate work in their own worktree branch and merge everyone's work at the end, resolving any merge conflicts smartly since you are basically serving the orchestrator role and have full context to our goals, work given, work achieved, and desired outcomes.
|
|
62
|
+
- After editing `AGENTS.md`, run `bash scripts/sync-agent-rules.sh` to regenerate platform-specific instruction files.
|
|
63
|
+
- After editing `.claude/skills/clone-website/SKILL.md`, run `node scripts/sync-skills.mjs` to regenerate the skill for all platforms.
|
|
64
|
+
|
|
65
|
+
@docs/research/INSPECTION_GUIDE.md
|
package/README.md
CHANGED
|
@@ -1,121 +1,162 @@
|
|
|
1
|
-
# Launchframe
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
| [
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
docs/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
1
|
+
# Launchframe (AI Website Cloner)
|
|
2
|
+
|
|
3
|
+
<a href="https://github.com/JCodesMore/ai-website-cloner-template/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License" /></a> <a href="https://github.com/JCodesMore/ai-website-cloner-template/stargazers"><img src="https://img.shields.io/github/stars/JCodesMore/ai-website-cloner-template?style=flat" alt="Stars" /></a> <a href="https://discord.gg/hrTSX5yTpB"><img src="https://img.shields.io/discord/1400896964597383279?label=discord" alt="Discord" /></a>
|
|
4
|
+
|
|
5
|
+
Scaffold a Next.js + shadcn/ui project from **a reference URL you want to copy** plus **your SaaS idea** that drives landing-page positioning. Then run `/clone-website` so your AI agent reverse-engineers the reference layout while preserving your messaging inputs (`launchframe.context.json`, `docs/research/LAUNCHFRAME.md`, `src/lib/launchframe-config.ts`).
|
|
6
|
+
|
|
7
|
+
**Recommended: [Claude Code](https://docs.anthropic.com/en/docs/claude-code) with Opus 4.7 for best results** — but works with a variety of AI coding agents.
|
|
8
|
+
|
|
9
|
+
## Demo
|
|
10
|
+
|
|
11
|
+
[](https://youtu.be/O669pVZ_qr0)
|
|
12
|
+
|
|
13
|
+
> Click the image above to watch the full demo on YouTube.
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
### CLI (recommended)
|
|
18
|
+
|
|
19
|
+
From an empty folder (or anywhere you want the project folder created):
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx launchframe@latest https://example.com "Your SaaS idea in plain language"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Optional flags:
|
|
26
|
+
|
|
27
|
+
- `--dir my-app` / `-o my-app` — output folder name (default: `<hostname>-launchframe`)
|
|
28
|
+
- `--skip-install` — scaffold files only; run `npm install` yourself
|
|
29
|
+
|
|
30
|
+
Then:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
cd <your-project-folder>
|
|
34
|
+
npm run dev
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Open your AI agent and run `/clone-website <same-reference-url>` so it rebuilds the reference site into components while aligning hero copy with your SaaS idea files above.
|
|
38
|
+
|
|
39
|
+
### Git template (advanced)
|
|
40
|
+
|
|
41
|
+
1. Clone this repository and `npm install`
|
|
42
|
+
2. Replace `src/lib/launchframe-config.ts` or run `npx launchframe ...` into a fresh folder
|
|
43
|
+
3. Run `/clone-website <target-url>` from your agent
|
|
44
|
+
|
|
45
|
+
> Using a different agent? Open `AGENTS.md` for project instructions — most agents pick it up automatically.
|
|
46
|
+
|
|
47
|
+
## Supported Platforms
|
|
48
|
+
|
|
49
|
+
| Agent | Status |
|
|
50
|
+
| ------------------------------------------------------------- | -------------------------- |
|
|
51
|
+
| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | **Recommended** — Opus 4.7 |
|
|
52
|
+
| [Codex CLI](https://github.com/openai/codex) | Supported |
|
|
53
|
+
| [OpenCode](https://opencode.ai/) | Supported |
|
|
54
|
+
| [GitHub Copilot](https://github.com/features/copilot) | Supported |
|
|
55
|
+
| [Cursor](https://cursor.com/) | Supported |
|
|
56
|
+
| [Windsurf](https://codeium.com/windsurf) | Supported |
|
|
57
|
+
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Supported |
|
|
58
|
+
| [Cline](https://github.com/cline/cline) | Supported |
|
|
59
|
+
| [Roo Code](https://github.com/RooCodeInc/Roo-Code) | Supported |
|
|
60
|
+
| [Continue](https://continue.dev/) | Supported |
|
|
61
|
+
| [Amazon Q](https://aws.amazon.com/q/developer/) | Supported |
|
|
62
|
+
| [Augment Code](https://www.augmentcode.com/) | Supported |
|
|
63
|
+
| [Aider](https://aider.chat/) | Supported |
|
|
64
|
+
|
|
65
|
+
## Prerequisites
|
|
66
|
+
|
|
67
|
+
- [Node.js](https://nodejs.org/) 24+
|
|
68
|
+
- An AI coding agent (see [Supported Platforms](#supported-platforms))
|
|
69
|
+
|
|
70
|
+
## Tech Stack
|
|
71
|
+
|
|
72
|
+
- **Next.js 16** — App Router, React 19, TypeScript strict
|
|
73
|
+
- **shadcn/ui** — Radix primitives + Tailwind CSS v4
|
|
74
|
+
- **Tailwind CSS v4** — oklch design tokens
|
|
75
|
+
- **Lucide React** — default icons (replaced by extracted SVGs during cloning)
|
|
76
|
+
|
|
77
|
+
## How It Works
|
|
78
|
+
|
|
79
|
+
The `/clone-website` skill runs a multi-phase pipeline:
|
|
80
|
+
|
|
81
|
+
1. **Reconnaissance** — screenshots, design token extraction, interaction sweep (scroll, click, hover, responsive)
|
|
82
|
+
2. **Foundation** — updates fonts, colors, globals, downloads all assets
|
|
83
|
+
3. **Component Specs** — writes detailed spec files (`docs/research/components/`) with exact computed CSS values, states, behaviors, and content
|
|
84
|
+
4. **Parallel Build** — dispatches builder agents in git worktrees, one per section/component
|
|
85
|
+
5. **Assembly & QA** — merges worktrees, wires up the page, runs visual diff against the original
|
|
86
|
+
|
|
87
|
+
Each builder agent receives the full component specification inline — exact `getComputedStyle()` values, interaction models, multi-state content, responsive breakpoints, and asset paths. No guessing.
|
|
88
|
+
|
|
89
|
+
## Use Cases
|
|
90
|
+
|
|
91
|
+
- **Platform migration** — rebuild a site you own from WordPress/Webflow/Squarespace into a modern Next.js codebase
|
|
92
|
+
- **Lost source code** — your site is live but the repo is gone, the developer left, or the stack is legacy. Get the code back in a modern format
|
|
93
|
+
- **Learning** — deconstruct how production sites achieve specific layouts, animations, and responsive behavior by working with real code
|
|
94
|
+
|
|
95
|
+
## Not Intended For
|
|
96
|
+
|
|
97
|
+
- **Phishing or impersonation** — this project must not be used for deceptive purposes, impersonation, or any activity that breaks the law.
|
|
98
|
+
- **Passing off someone's design as your own** — logos, brand assets, and original copy belong to their owners.
|
|
99
|
+
- **Violating terms of service** — some sites explicitly prohibit scraping or reproduction. Check first.
|
|
100
|
+
|
|
101
|
+
## Project Structure
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
src/
|
|
105
|
+
app/ # Next.js routes
|
|
106
|
+
components/ # React components
|
|
107
|
+
ui/ # shadcn/ui primitives
|
|
108
|
+
icons.tsx # Extracted SVG icons
|
|
109
|
+
lib/utils.ts # cn() utility
|
|
110
|
+
types/ # TypeScript interfaces
|
|
111
|
+
hooks/ # Custom React hooks
|
|
112
|
+
public/
|
|
113
|
+
images/ # Downloaded images from target
|
|
114
|
+
videos/ # Downloaded videos from target
|
|
115
|
+
seo/ # Favicons, OG images
|
|
116
|
+
docs/
|
|
117
|
+
research/ # Extraction output & component specs
|
|
118
|
+
design-references/ # Screenshots
|
|
119
|
+
scripts/
|
|
120
|
+
sync-agent-rules.sh # Regenerate agent instruction files
|
|
121
|
+
sync-skills.mjs # Regenerate /clone-website for all platforms
|
|
122
|
+
AGENTS.md # Agent instructions (single source of truth)
|
|
123
|
+
CLAUDE.md # Claude Code config (imports AGENTS.md)
|
|
124
|
+
GEMINI.md # Gemini CLI config (imports AGENTS.md)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Commands
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npm run dev # Start dev server
|
|
131
|
+
npm run build # Production build
|
|
132
|
+
npm run lint # ESLint check
|
|
133
|
+
npm run typecheck # TypeScript check
|
|
134
|
+
npm run check # Run lint + typecheck + build
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### If using docker
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
docker compose up app --build # build and run the app
|
|
141
|
+
docker compose up dev --build # run the app in dev mode on port 3001
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Updating for Other Platforms
|
|
145
|
+
|
|
146
|
+
Two source-of-truth files power all platform support. Edit the source, then run the sync script:
|
|
147
|
+
|
|
148
|
+
| What | Source of truth | Sync command |
|
|
149
|
+
| ---------------------- | --------------------------------------- | ---------------------------------- |
|
|
150
|
+
| Project instructions | `AGENTS.md` | `bash scripts/sync-agent-rules.sh` |
|
|
151
|
+
| `/clone-website` skill | `.claude/skills/clone-website/SKILL.md` | `node scripts/sync-skills.mjs` |
|
|
152
|
+
|
|
153
|
+
Each script regenerates the platform-specific copies automatically. Agents that read the source files natively need no regeneration.
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
## Star History
|
|
157
|
+
|
|
158
|
+
[](https://star-history.com/#JCodesMore/ai-website-cloner-template&Date)
|
|
159
|
+
|
|
160
|
+
## License
|
|
161
|
+
|
|
162
|
+
MIT
|