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.
Files changed (38) hide show
  1. package/.claude/skills/clone-website/SKILL.md +473 -564
  2. package/.clinerules +147 -285
  3. package/.codex/skills/clone-website/SKILL.md +473 -564
  4. package/.continue/commands/clone-website.md +475 -566
  5. package/.continue/rules/project.md +151 -285
  6. package/.cursor/commands/clone-website.md +470 -561
  7. package/.cursor/rules/project.mdc +7 -22
  8. package/.gemini/commands/clone-website.toml +476 -567
  9. package/.github/copilot-instructions.md +147 -281
  10. package/.github/skills/clone-website/SKILL.md +473 -564
  11. package/.gitignore +49 -0
  12. package/.opencode/commands/clone-website.md +473 -564
  13. package/.windsurf/workflows/clone-website.md +470 -561
  14. package/AGENTS.md +65 -160
  15. package/README.md +162 -121
  16. package/bin/launchframe.mjs +343 -0
  17. package/docs/research/INSPECTION_GUIDE.md +80 -124
  18. package/package.json +97 -54
  19. package/src/app/globals.css +1 -93
  20. package/src/app/layout.tsx +16 -5
  21. package/src/app/page.tsx +37 -2
  22. package/src/lib/launchframe-config.ts +8 -0
  23. package/.amazonq/cli-agents/clone-website.json +0 -9
  24. package/.amazonq/rules/project.md +0 -281
  25. package/.augment/commands/clone-website.md +0 -565
  26. package/.claude/skills/marketing-social-proof-motion/SKILL.md +0 -47
  27. package/.cursor/commands/marketing-social-proof-motion.md +0 -42
  28. package/.nvmrc +0 -1
  29. package/CHANGELOG.md +0 -80
  30. package/START_HERE.md +0 -15
  31. package/docs/design-references/playwright-example.com-1440px.png +0 -0
  32. package/docs/design-references/playwright-example.com-390px.png +0 -0
  33. package/launchframe.config.json +0 -14
  34. package/public/images/.gitkeep +0 -0
  35. package/public/seo/.gitkeep +0 -0
  36. package/public/videos/.gitkeep +0 -0
  37. package/scripts/recon-playwright.mjs +0 -396
  38. 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
- # Launchframe Project (AI Website Cloner + SaaS Rebrand)
8
-
9
- ## What This Is
10
- This project was scaffolded by [Launchframe](https://github.com/evangruhlkey/launchframe) via `npx launchframe@latest <url> "<saas idea>"`. It is a Next.js + shadcn/ui + Tailwind v4 base wired with an AI-cloner skill (`/clone-website`) that reverse-engineers a real website pixel-perfectly and then re-skins its copy/branding for the user's SaaS idea.
11
-
12
- ## Single Source of Truth: `launchframe.config.json`
13
- At the project root there is a `launchframe.config.json` containing:
14
- - `url` the visual source-of-truth to clone
15
- - `idea` the SaaS idea used as the rebranding directive after the clone
16
-
17
- **Always read this file first** at the start of any cloning or build task. The `/clone-website` skill depends on it.
18
-
19
- ## What the user says (zero-setup flow)
20
- Users scaffold with `npx launchframe@latest <url> "<saas idea>"` — `npm install` already ran — then they open this folder and say **Build it** (or **Go**, **Ship it**, **Clone the site**).
21
-
22
- When you see that with no other instructions, **start the full clone-website pipeline immediately** using only `launchframe.config.json` for `url` and `idea`. Do not ask them to repeat the URL unless the config is missing or invalid. `/clone-website` is an alias for the same work.
23
-
24
- ## Tech Stack
25
- - **Framework:** Next.js 16 (App Router, React 19, TypeScript strict)
26
- - **UI:** shadcn/ui (Radix primitives, Tailwind CSS v4, `cn()` utility)
27
- - **Motion:** **Framer Motion** (`framer-motion`) — **default for non-trivial animation** (scroll reveals, staggers, layout, gestures). Use CSS `transition` / `@keyframes` only when they reproduce the target exactly without JS.
28
- - **Icons:** Lucide React (default will be replaced/supplemented by extracted SVGs)
29
- - **Styling:** Tailwind CSS v4 with oklch design tokens
30
- - **Media:** Real **images & videos** from the target URL, saved under `public/images/` and `public/videos/` (see `.claude/skills/clone-website/SKILL.md` and `docs/research/INSPECTION_GUIDE.md`). Do not ship a “pretty shell” with missing raster/video unless extraction is **blocked** and documented in `docs/research/EXTRACTION_LIMITATIONS.md`.
31
- - **Deployment:** Vercel
32
-
33
- ## Priority: images, videos & motion
34
- Treat these as **first-class deliverables**, not polish at the end.
35
-
36
- 1. **Raster & video** — Early in recon, inventory every `<img>`, `<picture>` / `<source>`, `<video>`, poster image, and meaningful `background-image` URL. Download into `public/` and reference **local paths** in specs and components. Hero bands and marketing sections often fail visually when a single layer is skipped.
37
- 2. **Motion** — Match the target’s feel: easing, duration, stagger, scroll triggers. Prefer **`motion` from `framer-motion`** for entrance sequences, viewport-driven animations, shared-layout-style transitions, and anything beyond a one-off CSS transition. Note in each component spec whether behavior is **CSS-only** vs **Framer Motion**.
38
- 3. **Illustration & brand marks** — Inline **SVG React components** (not only Lucide) for motifs that repeat across sections: logo glyph variants, dividers, grain/noise overlays, hero “scene” shapes, feature-card mini-compositions. Prefer **`currentColor`** + CSS variables so SVGs inherit theme tokens. For **pixel art**, keep a tight palette (4–8 fills), consistent pixel grid logic, and use `style={{ imageRendering: "pixelated" }}` on upscaled raster OR build pixel SVG paths intentionally — never blurry upscale.
39
-
40
- ## Production polish for marketing landings *(idea-tailored visuals + motion + brand)*
41
-
42
- Use this whenever the page is **authored or minimalist** (internal templates, rebranded clones that still feel flat, or targets that are mostly typography). “Looks OK” is not ship-ready — **production landings** stack multiple visual layers, choreographed motion, and cues that clearly belong to **this** product (`launchframe.config.json#idea`), not any SaaS.
43
-
44
- ### Idea-tailored imagery *(uniqueness bar)*
45
-
46
- Generic decoration fails review. Apply this to **every** hero composition, feature-card illustration, OG image sketch, and major `public/` marketing raster.
47
-
48
- 1. **Derive metaphors from the idea** — Read `idea` (and product name). List 3–6 concrete nouns/verbs the product owns (e.g. voice → waveform, mic; notes → folded page, margin line; sync → paired arrows). Every bespoke visual must trace back to that list — **not** interchangeable clipart (random apparel, unrelated lifestyle objects, vague “business” silhouettes unless the idea demands them).
49
- 2. **Could this ship on another site unchanged?** If yes, redesign until **no** — different silhouette story, palette accent, or composition so the asset “only fits” this narrative.
50
- 3. **One tie-in sentence per asset** — In specs or `docs/research/REBRAND.md`, each image/SVG scene gets **Idea tie-in:** `<why this belongs to this product>`.
51
- 4. **Prefer authored scenes** — Custom SVG narratives (several shapes telling one moment), optional pixel mascot **on-brand** for the category, or composed raster under `public/images/marketing/` when illustration needs texture. Lucide-only piles and neutral blobs are **last resort**, not default.
52
- 5. **Distinct accents** — Pick accent hues/shapes suggested by the idea’s personality (precise studio vs warm companion vs rugged utility); avoid default gray-only SaaS anonymity unless the brief is explicitly brutalist.
53
-
54
- ### Imagery density (every fold earns a visual idea)
55
-
56
- - **Hero** — Never headline-only on white: add at least two of — soft gradient mesh / radial spotlight, **idea-specific** SVG cluster (metaphors from the list above), notebook/grid lines when the idea is docs, waveform device frame when the idea is capture, masked **purpose-built** raster in `public/images/marketing/`, geometric frame echoing **this** logo shape.
57
- - **Between sections** — Optional dividers whose pattern/stroke **echoes the product motif** (not a stock wave).
58
- - **Feature rows** — Each card illustration is a **different** moment in the same visual language (shared stroke weight, accent, or grid) — all still **idea-native** (e.g. capture → transcript lines; workspace → shared cursors; publish → export channels). No unrelated filler.
59
- - **Social proof** — Logo strip may use grayscale marks; add **slow infinite marquee** or gentle opacity drift — motion sells “living product.” Name recognizable companies where appropriate; use lawful logo marks under `public/images/logos/` (or generate **original** tiles — never counterfeit trademarks). Full workflow: **`.claude/skills/marketing-social-proof-motion/SKILL.md`** · Cursor **`/marketing-social-proof-motion`**.
60
-
61
- ### Motion choreography *(ship several layers; respect `prefers-reduced-motion`)*
62
-
63
- Default minimum bar for authored landings implement with **`framer-motion`** unless matching CSS-only parity:
64
-
65
- | Tier | What users feel | Typical implementation |
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 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
+ # 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
+ [![Watch the demo](docs/design-references/comparison.png)](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
+ [![Star History Chart](https://api.star-history.com/svg?repos=JCodesMore/ai-website-cloner-template&type=Date)](https://star-history.com/#JCodesMore/ai-website-cloner-template&Date)
159
+
160
+ ## License
161
+
162
+ MIT