launchframe 0.3.0 → 0.3.1
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/README.md +56 -121
- package/bin/launchframe.mjs +315 -0
- package/package.json +52 -54
- package/template/LICENSE +21 -0
- package/template/README.md +121 -0
- package/template/package-lock.json +9873 -0
- package/template/package.json +54 -0
- package/CHANGELOG.md +0 -80
- /package/{.aider.conf.yml → template/.aider.conf.yml} +0 -0
- /package/{.amazonq → template/.amazonq}/cli-agents/clone-website.json +0 -0
- /package/{.amazonq → template/.amazonq}/rules/project.md +0 -0
- /package/{.augment → template/.augment}/commands/clone-website.md +0 -0
- /package/{.claude → template/.claude}/skills/clone-website/SKILL.md +0 -0
- /package/{.claude → template/.claude}/skills/marketing-social-proof-motion/SKILL.md +0 -0
- /package/{.clinerules → template/.clinerules} +0 -0
- /package/{.codex → template/.codex}/skills/clone-website/SKILL.md +0 -0
- /package/{.continue → template/.continue}/commands/clone-website.md +0 -0
- /package/{.continue → template/.continue}/rules/project.md +0 -0
- /package/{.cursor → template/.cursor}/commands/clone-website.md +0 -0
- /package/{.cursor → template/.cursor}/commands/marketing-social-proof-motion.md +0 -0
- /package/{.cursor → template/.cursor}/rules/project.mdc +0 -0
- /package/{.dockerignore → template/.dockerignore} +0 -0
- /package/{.gemini → template/.gemini}/commands/clone-website.toml +0 -0
- /package/{.gitattributes → template/.gitattributes} +0 -0
- /package/{.github → template/.github}/ISSUE_TEMPLATE/bug_report.yml +0 -0
- /package/{.github → template/.github}/ISSUE_TEMPLATE/config.yml +0 -0
- /package/{.github → template/.github}/ISSUE_TEMPLATE/feature_request.yml +0 -0
- /package/{.github → template/.github}/PULL_REQUEST_TEMPLATE.md +0 -0
- /package/{.github → template/.github}/copilot-instructions.md +0 -0
- /package/{.github → template/.github}/copilot-setup-steps.yml +0 -0
- /package/{.github → template/.github}/skills/clone-website/SKILL.md +0 -0
- /package/{.github → template/.github}/workflows/ci.yml +0 -0
- /package/{.nvmrc → template/.nvmrc} +0 -0
- /package/{.opencode → template/.opencode}/commands/clone-website.md +0 -0
- /package/{.windsurf → template/.windsurf}/workflows/clone-website.md +0 -0
- /package/{.windsurfrules → template/.windsurfrules} +0 -0
- /package/{AGENTS.md → template/AGENTS.md} +0 -0
- /package/{CLAUDE.md → template/CLAUDE.md} +0 -0
- /package/{Dockerfile → template/Dockerfile} +0 -0
- /package/{Dockerfile.dev → template/Dockerfile.dev} +0 -0
- /package/{GEMINI.md → template/GEMINI.md} +0 -0
- /package/{START_HERE.md → template/START_HERE.md} +0 -0
- /package/{components.json → template/components.json} +0 -0
- /package/{docker-compose.yml → template/docker-compose.yml} +0 -0
- /package/{docs → template/docs}/design-references/.gitkeep +0 -0
- /package/{docs → template/docs}/design-references/comparison.png +0 -0
- /package/{docs → template/docs}/design-references/playwright-example.com-1440px.png +0 -0
- /package/{docs → template/docs}/design-references/playwright-example.com-390px.png +0 -0
- /package/{docs → template/docs}/research/INSPECTION_GUIDE.md +0 -0
- /package/{eslint.config.mjs → template/eslint.config.mjs} +0 -0
- /package/{launchframe.config.json → template/launchframe.config.json} +0 -0
- /package/{next.config.ts → template/next.config.ts} +0 -0
- /package/{postcss.config.mjs → template/postcss.config.mjs} +0 -0
- /package/{public → template/public}/images/.gitkeep +0 -0
- /package/{public → template/public}/seo/.gitkeep +0 -0
- /package/{public → template/public}/videos/.gitkeep +0 -0
- /package/{scripts → template/scripts}/.gitkeep +0 -0
- /package/{scripts → template/scripts}/recon-playwright.mjs +0 -0
- /package/{scripts → template/scripts}/sync-agent-rules.sh +0 -0
- /package/{scripts → template/scripts}/sync-skills.mjs +0 -0
- /package/{src → template/src}/app/favicon.ico +0 -0
- /package/{src → template/src}/app/globals.css +0 -0
- /package/{src → template/src}/app/layout.tsx +0 -0
- /package/{src → template/src}/app/page.tsx +0 -0
- /package/{src → template/src}/components/marketing/scribewise-landing.tsx +0 -0
- /package/{src → template/src}/components/ui/button.tsx +0 -0
- /package/{src → template/src}/hooks/.gitkeep +0 -0
- /package/{src → template/src}/lib/utils.ts +0 -0
- /package/{src → template/src}/types/.gitkeep +0 -0
- /package/{tsconfig.json → template/tsconfig.json} +0 -0
|
@@ -0,0 +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 **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
|