launchframe 0.2.1 → 0.2.3

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.
@@ -6,38 +6,26 @@ This project was scaffolded by **[Launchframe](https://github.com/evangruhlkey/l
6
6
  npx launchframe@latest <url> "<saas idea>"
7
7
  ```
8
8
 
9
- It bundles the [`ai-website-cloner-template`](https://github.com/JCodesMore/ai-website-cloner-template) workflow with one extra ingredient: a `launchframe.config.json` that tells your AI agent which URL to clone visually and which SaaS idea to re-skin it for.
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
10
 
11
11
  ---
12
12
 
13
- ## Quick Start
14
-
15
- 1. **Install dependencies**
16
- ```bash
17
- npm install
18
- ```
19
- 2. **Confirm the config** in [`launchframe.config.json`](./launchframe.config.json):
20
- ```json
21
- {
22
- "url": "https://linear.app",
23
- "idea": "AI-powered customer feedback platform"
24
- }
25
- ```
26
- Edit either field any time — the skill re-reads it every run.
27
- 3. **Open the project in your AI coding agent** — [Claude Code](https://docs.anthropic.com/en/docs/claude-code) with Opus 4.7 is recommended (`claude --chrome`), but [Cursor](https://cursor.com/), [Codex CLI](https://github.com/openai/codex), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Copilot](https://github.com/features/copilot), [Windsurf](https://codeium.com/windsurf), [Cline](https://github.com/cline/cline), [Continue](https://continue.dev/), [Amazon Q](https://aws.amazon.com/q/developer/), [Augment](https://www.augmentcode.com/), and [Aider](https://aider.chat/) all work.
28
- 4. **Run the skill:**
29
- ```
30
- /clone-website
31
- ```
32
- It reads `launchframe.config.json` automatically — no need to pass the URL again.
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).
33
21
 
34
22
  ## What `/clone-website` does
35
23
 
36
24
  A multi-phase pipeline runs inside your AI agent:
37
25
 
38
- 1. **Reconnaissance** — screenshots, design-token extraction, interaction sweep (scroll, click, hover, responsive)
39
- 2. **Foundation** — updates fonts, colors, globals, downloads all assets
40
- 3. **Component Specs** — writes detailed spec files (`docs/research/components/`) with exact computed CSS values
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)
41
29
  4. **Parallel Build** — dispatches builder agents in git worktrees, one per section
42
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.
43
31
  6. **Assembly & Visual QA** — merges worktrees, wires up the page, runs visual diff against the original
@@ -67,7 +55,9 @@ Each builder agent receives the full component spec inline — exact `getCompute
67
55
  - **Next.js 16** — App Router, React 19, TypeScript strict
68
56
  - **shadcn/ui** — Radix primitives + Tailwind CSS v4
69
57
  - **Tailwind CSS v4** — oklch design tokens
58
+ - **Framer Motion** — default for non-trivial marketing animation (scroll reveals, staggers, layout); see `AGENTS.md`
70
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`)
71
61
 
72
62
  ## Prerequisites
73
63
 
@@ -97,6 +87,7 @@ scripts/
97
87
  sync-skills.mjs # Regenerate /clone-website for all platforms
98
88
  launchframe.config.json # ← URL + SaaS idea (single source of truth)
99
89
  AGENTS.md # Agent instructions (single source of truth)
90
+ START_HERE.md # "Open Cursor → say Build it"
100
91
  CLAUDE.md # Claude Code config (imports AGENTS.md)
101
92
  GEMINI.md # Gemini CLI config (imports AGENTS.md)
102
93
  ```
@@ -0,0 +1,15 @@
1
+ # Start here
2
+
3
+ Launchframe wrote files into **this folder** (your project root), including **`.cursor`** and **`.claude`**, so they work when you open this directory in your editor.
4
+
5
+ ## Do this next
6
+
7
+ 1. **Open this folder** in [Cursor](https://cursor.com/) (the root that contains `.cursor` — not a parent directory).
8
+ 2. In chat, say: **Build it.**
9
+
10
+ That tells your AI to read `launchframe.config.json` and `AGENTS.md` and run the full **clone + SaaS rebrand** pipeline (same work as `/clone-website`).
11
+
12
+ ## Optional
13
+
14
+ - Prefer a slash command? Use **`/clone-website`** in Cursor.
15
+ - Wrong URL or idea? Edit **`launchframe.config.json`**, then say **Build it** again.
@@ -1,5 +1,30 @@
1
1
  # Website Inspection Guide
2
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
+
3
28
  ## How to Reverse-Engineer Any Website
4
29
 
5
30
  This guide outlines what to capture when inspecting a target website via Chrome MCP or browser DevTools.
@@ -14,6 +39,8 @@ This guide outlines what to capture when inspecting a target website via Chrome
14
39
  - [ ] Loading/skeleton states
15
40
  - [ ] Empty states
16
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
17
44
 
18
45
  ### Design Tokens to Extract
19
46
  - [ ] **Colors** — background, text (primary/secondary/muted), accent, border, hover, error, success, warning
@@ -36,7 +63,7 @@ For each distinct UI component, document:
36
63
  4. **States** — default, hover, active, disabled, loading, error, empty
37
64
  5. **Responsive behavior** — how does it change at different breakpoints?
38
65
  6. **Interactions** — click, hover, focus, keyboard navigation
39
- 7. **Animations** — transitions, entrance/exit animations, micro-interactions
66
+ 7. **Animations** — transitions, entrance/exit, micro-interactions — **`framer-motion` vs CSS** and exact timing
40
67
 
41
68
  ### Common Components to Look For
42
69
  - Navigation (top bar, sidebar, bottom bar)
@@ -50,6 +77,7 @@ For each distinct UI component, document:
50
77
  - Loading skeletons
51
78
  - Toast notifications
52
79
  - Tooltips and popovers
80
+ - **Video / Lottie / canvas** blocks (do not substitute with static mockups without documenting why)
53
81
 
54
82
  ## Phase 3: Layout Architecture
55
83
 
@@ -67,14 +95,15 @@ For each distinct UI component, document:
67
95
  - [ ] **State management** — Redux (check DevTools), React Query, Zustand, Pinia
68
96
  - [ ] **API patterns** — REST, GraphQL (check network tab for `/graphql` requests)
69
97
  - [ ] **Font loading** — Google Fonts, self-hosted, system fonts
70
- - [ ] **Image strategy** — CDN, lazy loading, srcset, WebP/AVIF
71
- - [ ] **Animation library** — Framer Motion, GSAP, CSS transitions only
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
72
100
 
73
101
  ## Phase 5: Documentation Output
74
102
 
75
103
  After inspection, create these files in `docs/research/`:
76
104
  1. `DESIGN_TOKENS.md` — All extracted colors, typography, spacing
77
105
  2. `COMPONENT_INVENTORY.md` — Every component with structure notes
78
- 3. `LAYOUT_ARCHITECTURE.md`Page layouts, grid system, responsive behavior
79
- 4. `INTERACTION_PATTERNS.md` — Animations, transitions, hover states
80
- 5. `TECH_STACK_ANALYSIS.md` — What the site uses and our chosen equivalents
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)
@@ -38,6 +38,7 @@
38
38
  "@base-ui/react": "^1.3.0",
39
39
  "class-variance-authority": "^0.7.1",
40
40
  "clsx": "^2.1.1",
41
+ "framer-motion": "^12.4.0",
41
42
  "lucide-react": "^1.6.0",
42
43
  "next": "16.2.1",
43
44
  "react": "19.2.4",