launchframe 0.4.0 → 0.4.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/.amazonq/cli-agents/clone-website.json +9 -0
- package/.amazonq/cli-agents/launchframe.json +9 -0
- package/.amazonq/rules/project.md +158 -0
- package/.augment/commands/clone-website.md +488 -0
- package/.augment/commands/launchframe.md +46 -0
- package/.claude/skills/clone-website/SKILL.md +14 -0
- package/.claude/skills/launchframe/SKILL.md +45 -0
- package/.clinerules +78 -67
- package/.codex/skills/clone-website/SKILL.md +487 -473
- package/.codex/skills/launchframe/SKILL.md +45 -0
- package/.continue/commands/clone-website.md +489 -475
- package/.continue/commands/launchframe.md +47 -0
- package/.continue/rules/project.md +82 -71
- package/.cursor/commands/clone-website.md +484 -470
- package/.cursor/commands/launchframe.md +42 -0
- package/.gemini/commands/clone-website.toml +490 -476
- package/.gemini/commands/launchframe.toml +48 -0
- package/.github/copilot-instructions.md +78 -67
- package/.github/skills/clone-website/SKILL.md +487 -473
- package/.github/skills/launchframe/SKILL.md +45 -0
- package/.opencode/commands/clone-website.md +487 -473
- package/.opencode/commands/launchframe.md +45 -0
- package/.windsurf/workflows/clone-website.md +484 -470
- package/.windsurf/workflows/launchframe.md +42 -0
- package/AGENTS.md +3 -2
- package/README.md +15 -3
- package/bin/launchframe.mjs +21 -16
- package/docs/research/INSPECTION_GUIDE.md +10 -0
- package/package.json +4 -2
- package/scripts/sync-skills.mjs +108 -95
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# AUTO-GENERATED from .claude/skills/launchframe/SKILL.md
|
|
2
|
+
# Run `node scripts/sync-skills.mjs` to regenerate.
|
|
3
|
+
|
|
4
|
+
description = "Scaffold a Next.js app with npx launchframe@latest from a reference URL and SaaS idea"
|
|
5
|
+
|
|
6
|
+
[prompt]
|
|
7
|
+
text = '''
|
|
8
|
+
|
|
9
|
+
# Launchframe
|
|
10
|
+
|
|
11
|
+
You are helping the user scaffold a **new** project from **{{args}}**:
|
|
12
|
+
|
|
13
|
+
- A **reference URL** (the website to copy later with `/clone-website`)
|
|
14
|
+
- A **SaaS idea** string (headline / positioning for the generated landing page)
|
|
15
|
+
|
|
16
|
+
## Parse inputs
|
|
17
|
+
|
|
18
|
+
1. Split **{{args}}** into:
|
|
19
|
+
- **URL** — First `http://` or `https://` URL. Normalize (trim, validate). If invalid or missing, ask once for a correct URL.
|
|
20
|
+
- **SaaS idea** — Everything after the URL, typically in quotes. Strip surrounding quotes. If empty, ask for a short product pitch.
|
|
21
|
+
|
|
22
|
+
2. Optional flags the user might pass (same as the CLI): `--dir` / `-o` for output folder, `--skip-install` to skip `npm install`.
|
|
23
|
+
|
|
24
|
+
## Run the published CLI
|
|
25
|
+
|
|
26
|
+
Execute the scaffold using the **latest** package from npm (exact intent: **`launchframe@latest`**):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx launchframe@latest "<url>" "<saas-idea>" [--dir <folder>] [--skip-install]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- Use shell-appropriate quoting (PowerShell vs bash). Escape embedded quotes in the SaaS idea.
|
|
33
|
+
- **Output path:** The Launchframe CLI must not write **inside** the npm package / template directory itself (that would recurse). If the open workspace is this repository, run `npx` with `--dir` pointing to a **sibling** path (e.g. `..\\my-app` on Windows, `../my-app` on macOS/Linux) or ask the user for a folder **outside** the repo.
|
|
34
|
+
- Prefer letting the CLI run `npm install` unless the user passed `--skip-install`.
|
|
35
|
+
|
|
36
|
+
## After scaffold
|
|
37
|
+
|
|
38
|
+
Tell the user:
|
|
39
|
+
|
|
40
|
+
1. `cd` into the new project directory.
|
|
41
|
+
2. `npm run dev` to preview the SaaS landing shell.
|
|
42
|
+
3. Run **`/clone-website <same-reference-url>`** in that project so the agent can reverse-engineer the reference site into components, while keeping the SaaS idea from `launchframe.context.json` / `src/lib/launchframe-config.ts`.
|
|
43
|
+
|
|
44
|
+
## Fallback (local dev only)
|
|
45
|
+
|
|
46
|
+
If `npx launchframe@latest` is unavailable (offline), from a **checkout of this repo** you may run `node bin/launchframe.mjs "<url>" "<saas-idea>" ...` with the same rules for `--dir` outside the package root.
|
|
47
|
+
|
|
48
|
+
'''
|
|
@@ -1,76 +1,87 @@
|
|
|
1
|
-
<!-- AUTO-GENERATED from AGENTS.md — do not edit directly.
|
|
2
|
-
Run `bash scripts/sync-agent-rules.sh` to regenerate. -->
|
|
3
|
-
|
|
4
|
-
<!-- BEGIN:nextjs-agent-rules -->
|
|
5
|
-
# This is NOT the Next.js you know
|
|
6
|
-
|
|
7
|
-
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.
|
|
8
|
-
<!-- END:nextjs-agent-rules -->
|
|
9
|
-
|
|
10
|
-
# Website Reverse-Engineer Template
|
|
11
|
-
|
|
12
|
-
## What This Is
|
|
13
|
-
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 —
|
|
14
|
-
|
|
15
|
-
## Tech Stack
|
|
16
|
-
- **Framework:** Next.js 16 (App Router, React 19, TypeScript strict)
|
|
17
|
-
- **UI:** shadcn/ui (Radix primitives, Tailwind CSS v4, `cn()` utility)
|
|
18
|
-
- **Icons:** Lucide React (default — will be replaced/supplemented by extracted SVGs)
|
|
19
|
-
- **Styling:** Tailwind CSS v4 with oklch design tokens
|
|
20
|
-
- **Deployment:** Vercel
|
|
21
|
-
|
|
22
|
-
## Commands
|
|
23
|
-
- `npm run dev` — Start dev server
|
|
24
|
-
- `npm run build` — Production build
|
|
25
|
-
- `npm run lint` — ESLint check
|
|
26
|
-
- `npm run typecheck` — TypeScript check
|
|
27
|
-
- `npm run check` — Run lint + typecheck + build
|
|
28
|
-
|
|
29
|
-
## Code Style
|
|
30
|
-
- TypeScript strict mode, no `any`
|
|
31
|
-
- Named exports, PascalCase components, camelCase utils
|
|
32
|
-
- Tailwind utility classes, no inline styles
|
|
33
|
-
- 2-space indentation
|
|
34
|
-
- Responsive: mobile-first
|
|
35
|
-
|
|
36
|
-
## Design Principles
|
|
37
|
-
- **Pixel-perfect emulation** — match the target's spacing, colors, typography exactly
|
|
38
|
-
- **No personal aesthetic changes during emulation phase** — match 1:1 first, customize later
|
|
39
|
-
- **Real content** — use actual text and assets from the target site, not placeholders
|
|
40
|
-
- **Beauty-first** — every pixel matters
|
|
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
|
-
- After editing
|
|
67
|
-
|
|
1
|
+
<!-- AUTO-GENERATED from AGENTS.md — do not edit directly.
|
|
2
|
+
Run `bash scripts/sync-agent-rules.sh` to regenerate. -->
|
|
3
|
+
|
|
4
|
+
<!-- BEGIN:nextjs-agent-rules -->
|
|
5
|
+
# This is NOT the Next.js you know
|
|
6
|
+
|
|
7
|
+
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.
|
|
8
|
+
<!-- END:nextjs-agent-rules -->
|
|
9
|
+
|
|
10
|
+
# Website Reverse-Engineer Template
|
|
11
|
+
|
|
12
|
+
## What This Is
|
|
13
|
+
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 — start a **new** project with **`/launchframe <url> "your saas idea"`** (runs **`npx launchframe@latest`**), or work in the current repo and run **`/clone-website <url1> [<url2> ...]`** to clone into this tree.
|
|
14
|
+
|
|
15
|
+
## Tech Stack
|
|
16
|
+
- **Framework:** Next.js 16 (App Router, React 19, TypeScript strict)
|
|
17
|
+
- **UI:** shadcn/ui (Radix primitives, Tailwind CSS v4, `cn()` utility)
|
|
18
|
+
- **Icons:** Lucide React (default — will be replaced/supplemented by extracted SVGs)
|
|
19
|
+
- **Styling:** Tailwind CSS v4 with oklch design tokens
|
|
20
|
+
- **Deployment:** Vercel
|
|
21
|
+
|
|
22
|
+
## Commands
|
|
23
|
+
- `npm run dev` — Start dev server
|
|
24
|
+
- `npm run build` — Production build
|
|
25
|
+
- `npm run lint` — ESLint check
|
|
26
|
+
- `npm run typecheck` — TypeScript check
|
|
27
|
+
- `npm run check` — Run lint + typecheck + build
|
|
28
|
+
|
|
29
|
+
## Code Style
|
|
30
|
+
- TypeScript strict mode, no `any`
|
|
31
|
+
- Named exports, PascalCase components, camelCase utils
|
|
32
|
+
- Tailwind utility classes, no inline styles
|
|
33
|
+
- 2-space indentation
|
|
34
|
+
- Responsive: mobile-first
|
|
35
|
+
|
|
36
|
+
## Design Principles
|
|
37
|
+
- **Pixel-perfect emulation** — match the target's spacing, colors, typography exactly
|
|
38
|
+
- **No personal aesthetic changes during emulation phase** — match 1:1 first, customize later
|
|
39
|
+
- **Real content** — use actual text and assets from the target site, not placeholders
|
|
40
|
+
- **Beauty-first** — every pixel matters
|
|
41
|
+
- **DOM crawl priority** — when walking the target page, emphasize **images** (raster, responsive sources, CSS backgrounds), **SVGs** (inline icons, sprites, masks), then **motion** (keyframes, transitions, scroll/time-driven animation, libraries). Scrape and save real assets from the DOM/network first; **create** a stand-in image or vector only when fetch/blocking prevents extraction, and label substitutes clearly in research notes so the clone stays auditable
|
|
42
|
+
|
|
43
|
+
## Project Structure
|
|
44
|
+
```
|
|
45
|
+
src/
|
|
46
|
+
app/ # Next.js routes
|
|
47
|
+
components/ # React components
|
|
48
|
+
ui/ # shadcn/ui primitives
|
|
49
|
+
icons.tsx # Extracted SVG icons as React components
|
|
50
|
+
lib/
|
|
51
|
+
utils.ts # cn() utility (shadcn)
|
|
52
|
+
types/ # TypeScript interfaces
|
|
53
|
+
hooks/ # Custom React hooks
|
|
54
|
+
public/
|
|
55
|
+
images/ # Downloaded images from target site
|
|
56
|
+
videos/ # Downloaded videos from target site
|
|
57
|
+
seo/ # Favicons, OG images, webmanifest
|
|
58
|
+
docs/
|
|
59
|
+
research/ # Inspection output (design tokens, components, layout)
|
|
60
|
+
design-references/ # Screenshots and visual references
|
|
61
|
+
scripts/ # Asset download scripts
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## MOST IMPORTANT NOTES
|
|
65
|
+
- 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.
|
|
66
|
+
- After editing `AGENTS.md`, run `bash scripts/sync-agent-rules.sh` to regenerate platform-specific instruction files.
|
|
67
|
+
- After editing `.claude/skills/*/SKILL.md` (for example `clone-website` or `launchframe`), run `node scripts/sync-skills.mjs` to regenerate skill and command files for all platforms.
|
|
68
|
+
|
|
68
69
|
# Website Inspection Guide
|
|
69
70
|
|
|
70
71
|
## How to Reverse-Engineer Any Website
|
|
71
72
|
|
|
72
73
|
This guide outlines what to capture when inspecting a target website via Chrome MCP or browser DevTools.
|
|
73
74
|
|
|
75
|
+
## Priority: media, SVGs, and motion (do this early)
|
|
76
|
+
|
|
77
|
+
When crawling the DOM and network, **tackle these before fine-tuning copy or spacing**:
|
|
78
|
+
|
|
79
|
+
1. **Raster imagery** — Every `<img>`, `<picture>` / `source`, `srcset` / `sizes`, CDN URLs, lazy-loaded `data-src`, `loading="lazy"` nodes, **CSS `background-image`** on the element and ancestors (including `::before` / `::after`), masks that use `url()`, `<video>` still / poster frames. Prefer **downloading** originals via scripts or MCP; if a URL is blocked or session-gated, **export a screenshot** of the element’s bounding box at a crisp DPR and store it under `public/images/`, and note the substitute in the spec.
|
|
80
|
+
2. **SVGs** — Inline `<svg>`, `<use>` / sprite sheets, **SVG in CSS** (`mask-image`, `background-image`), favicons as SVG, logo marks. Prefer extracting path/viewBox into React components or static files under `public/` — **recreate** from a screenshot/trace only when the markup is obfuscated or blocked.
|
|
81
|
+
3. **Motion & animation** — Inspect Styles for `animation`, `animation-name`, `animation-timeline`, `transition`, `transform`, `@keyframes`; check for libraries (Framer Motion, GSAP, Lottie, Lenis). Capture **durations, easings, delays, fill-modes**, scroll/view triggers, and `prefers-reduced-motion` handling. Motion often defines perceived quality — do not leave it as an afterthought.
|
|
82
|
+
|
|
83
|
+
Then continue with typography, spacing, and component structure as usual.
|
|
84
|
+
|
|
74
85
|
## Phase 1: Visual Audit
|
|
75
86
|
|
|
76
87
|
### Screenshots to Capture
|