@zoyth/simple-site-framework 1.0.2 → 1.1.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/dist/components/index.d.mts +74 -1
- package/dist/components/index.d.ts +74 -1
- package/dist/components/index.js +210 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +208 -2
- package/dist/components/index.mjs.map +1 -1
- package/dist/index.d.mts +113 -2
- package/dist/index.d.ts +113 -2
- package/dist/index.js +196 -16
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +187 -16
- package/dist/index.mjs.map +1 -1
- package/docs/BLOG.md +1005 -0
- package/docs/guides/webflow-migration.md +300 -0
- package/package.json +2 -2
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
<!-- ABOUTME: Step-by-step guide for migrating Webflow sites to Simple Site Framework -->
|
|
2
|
+
<!-- ABOUTME: Documents the export → extract → review → implement workflow -->
|
|
3
|
+
|
|
4
|
+
# Webflow Migration Guide
|
|
5
|
+
|
|
6
|
+
Step-by-step guide for migrating Webflow sites to Simple Site Framework.
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
This guide describes a three-phase workflow that produces consistent, high-quality migrations:
|
|
11
|
+
|
|
12
|
+
1. **Export** (Human) - Get the source files from Webflow
|
|
13
|
+
2. **Extract** (Agent) - Generate a structured Migration Spec
|
|
14
|
+
3. **Implement** (Agent, after approval) - Build the site using framework components
|
|
15
|
+
|
|
16
|
+
## Why This Workflow?
|
|
17
|
+
|
|
18
|
+
When asking an agent to "replicate this Webflow site", results are often inconsistent because:
|
|
19
|
+
|
|
20
|
+
- The agent sees raw HTML/CSS, not semantic structure
|
|
21
|
+
- No clear mapping to framework components exists
|
|
22
|
+
- Visual nuances get lost in translation
|
|
23
|
+
- The definition of "same" is ambiguous
|
|
24
|
+
|
|
25
|
+
This workflow solves these problems by creating an intermediate **Migration Spec** that humans can review and approve before implementation begins.
|
|
26
|
+
|
|
27
|
+
## Phase 1: Export from Webflow
|
|
28
|
+
|
|
29
|
+
### Option A: Code Export (Recommended)
|
|
30
|
+
|
|
31
|
+
If you have dashboard access to the Webflow project:
|
|
32
|
+
|
|
33
|
+
1. Open the Webflow Designer
|
|
34
|
+
2. Click the hamburger menu (☰) in the top-left
|
|
35
|
+
3. Select **Export Code**
|
|
36
|
+
4. Download and unzip the export
|
|
37
|
+
|
|
38
|
+
You'll get:
|
|
39
|
+
```
|
|
40
|
+
webflow-export/
|
|
41
|
+
├── index.html
|
|
42
|
+
├── about.html
|
|
43
|
+
├── contact.html
|
|
44
|
+
├── css/
|
|
45
|
+
│ └── styles.css
|
|
46
|
+
├── js/
|
|
47
|
+
│ └── webflow.js
|
|
48
|
+
└── images/
|
|
49
|
+
├── hero-bg.jpg
|
|
50
|
+
├── logo.svg
|
|
51
|
+
└── ...
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Advantages:**
|
|
55
|
+
- Clean HTML with meaningful class names
|
|
56
|
+
- All assets included and organized
|
|
57
|
+
- No need to scrape the live site
|
|
58
|
+
|
|
59
|
+
### Option B: CMS Export (If Using Collections)
|
|
60
|
+
|
|
61
|
+
For sites with CMS collections (blog posts, team members, etc.):
|
|
62
|
+
|
|
63
|
+
1. Go to the Webflow CMS panel
|
|
64
|
+
2. Click the collection (e.g., "Blog Posts")
|
|
65
|
+
3. Click the ⚙️ settings icon
|
|
66
|
+
4. Select **Export as CSV**
|
|
67
|
+
|
|
68
|
+
Keep these CSV files alongside the code export for reference.
|
|
69
|
+
|
|
70
|
+
### Option C: Live Site Only
|
|
71
|
+
|
|
72
|
+
If you don't have dashboard access:
|
|
73
|
+
|
|
74
|
+
- The agent can fetch and analyze the published site
|
|
75
|
+
- Less ideal because HTML may be minified and harder to parse
|
|
76
|
+
- Assets must be individually identified and downloaded
|
|
77
|
+
|
|
78
|
+
## Phase 2: Generate Migration Spec
|
|
79
|
+
|
|
80
|
+
Use the migration prompt template to have an agent extract the structure:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
@prompts/migrate-webflow.md
|
|
84
|
+
|
|
85
|
+
Source: ./webflow-export/index.html
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The agent will produce a Migration Spec like this:
|
|
89
|
+
|
|
90
|
+
```markdown
|
|
91
|
+
## Page: Homepage
|
|
92
|
+
|
|
93
|
+
### Section 1: Hero
|
|
94
|
+
- **Suggested Component**: HeroSection
|
|
95
|
+
- **Variant**: centered, with background image
|
|
96
|
+
- **Content**:
|
|
97
|
+
- Heading: "Transform Your Business"
|
|
98
|
+
- Description: "We help companies achieve their goals through innovative solutions."
|
|
99
|
+
- Primary CTA: "Get Started" → /contact
|
|
100
|
+
- Secondary CTA: "Learn More" → #features
|
|
101
|
+
- Background Image: images/hero-bg.jpg
|
|
102
|
+
|
|
103
|
+
### Section 2: Features
|
|
104
|
+
- **Suggested Component**: FeaturesGrid
|
|
105
|
+
- **Layout**: 3 columns
|
|
106
|
+
- **Items**:
|
|
107
|
+
1. Icon: Shield | Title: "Secure" | Description: "Enterprise-grade security"
|
|
108
|
+
2. Icon: Clock | Title: "Fast" | Description: "Lightning-fast performance"
|
|
109
|
+
3. Icon: Users | Title: "Team" | Description: "Built for collaboration"
|
|
110
|
+
|
|
111
|
+
### Section 3: Testimonials
|
|
112
|
+
- **Suggested Component**: TestimonialSection
|
|
113
|
+
- **Items**:
|
|
114
|
+
1. Quote: "Amazing product..." | Author: "Jane Doe" | Role: "CEO, Acme Inc"
|
|
115
|
+
2. Quote: "Changed everything..." | Author: "John Smith" | Role: "CTO, Tech Co"
|
|
116
|
+
|
|
117
|
+
### Section 4: CTA
|
|
118
|
+
- **Suggested Component**: CTASection
|
|
119
|
+
- **Content**:
|
|
120
|
+
- Heading: "Ready to Get Started?"
|
|
121
|
+
- Primary CTA: "Contact Us" → /contact
|
|
122
|
+
|
|
123
|
+
### Assets to Copy
|
|
124
|
+
- images/hero-bg.jpg → public/images/hero-bg.jpg
|
|
125
|
+
- images/logo.svg → public/images/logo.svg
|
|
126
|
+
- images/testimonial-1.jpg → public/images/testimonial-1.jpg
|
|
127
|
+
- images/testimonial-2.jpg → public/images/testimonial-2.jpg
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Phase 3: Review and Approve
|
|
131
|
+
|
|
132
|
+
Before implementation, review the Migration Spec:
|
|
133
|
+
|
|
134
|
+
### Check Component Choices
|
|
135
|
+
|
|
136
|
+
Does the suggested component match the intent?
|
|
137
|
+
|
|
138
|
+
- A "feature grid" might be better as `ServicesSection` if they're clickable services
|
|
139
|
+
- A "testimonial slider" might need `TestimonialCarousel` instead of `TestimonialSection`
|
|
140
|
+
- Custom sections might need to be flagged for manual implementation
|
|
141
|
+
|
|
142
|
+
### Verify Content Accuracy
|
|
143
|
+
|
|
144
|
+
- All headings captured correctly?
|
|
145
|
+
- Descriptions complete (not truncated)?
|
|
146
|
+
- CTAs have correct text and destinations?
|
|
147
|
+
- All images identified?
|
|
148
|
+
|
|
149
|
+
### Note Any Gaps
|
|
150
|
+
|
|
151
|
+
Flag anything that:
|
|
152
|
+
- Doesn't map to an existing component
|
|
153
|
+
- Requires custom styling beyond component variants
|
|
154
|
+
- Needs dynamic/CMS data
|
|
155
|
+
|
|
156
|
+
### Approve
|
|
157
|
+
|
|
158
|
+
Once satisfied, tell the agent to proceed with implementation.
|
|
159
|
+
|
|
160
|
+
## Phase 4: Implementation
|
|
161
|
+
|
|
162
|
+
The agent will:
|
|
163
|
+
|
|
164
|
+
1. Create page files in `src/app/`
|
|
165
|
+
2. Import and configure components
|
|
166
|
+
3. Copy assets to `public/images/`
|
|
167
|
+
4. Wire up navigation and links
|
|
168
|
+
|
|
169
|
+
### Example Output
|
|
170
|
+
|
|
171
|
+
```typescript
|
|
172
|
+
// src/app/page.tsx
|
|
173
|
+
import {
|
|
174
|
+
HeroSection,
|
|
175
|
+
FeaturesGrid,
|
|
176
|
+
TestimonialSection,
|
|
177
|
+
CTASection,
|
|
178
|
+
} from '@zoyth/simple-site-framework';
|
|
179
|
+
|
|
180
|
+
export default function HomePage() {
|
|
181
|
+
return (
|
|
182
|
+
<main>
|
|
183
|
+
<HeroSection
|
|
184
|
+
heading="Transform Your Business"
|
|
185
|
+
description="We help companies achieve their goals through innovative solutions."
|
|
186
|
+
primaryCTA={{ text: 'Get Started', href: '/contact' }}
|
|
187
|
+
secondaryCTA={{ text: 'Learn More', href: '#features' }}
|
|
188
|
+
backgroundImage="/images/hero-bg.jpg"
|
|
189
|
+
variant="centered"
|
|
190
|
+
/>
|
|
191
|
+
|
|
192
|
+
<FeaturesGrid
|
|
193
|
+
id="features"
|
|
194
|
+
features={[
|
|
195
|
+
{ icon: 'Shield', title: 'Secure', description: 'Enterprise-grade security' },
|
|
196
|
+
{ icon: 'Clock', title: 'Fast', description: 'Lightning-fast performance' },
|
|
197
|
+
{ icon: 'Users', title: 'Team', description: 'Built for collaboration' },
|
|
198
|
+
]}
|
|
199
|
+
columns={3}
|
|
200
|
+
/>
|
|
201
|
+
|
|
202
|
+
<TestimonialSection
|
|
203
|
+
testimonials={[
|
|
204
|
+
{ quote: 'Amazing product...', author: 'Jane Doe', role: 'CEO, Acme Inc' },
|
|
205
|
+
{ quote: 'Changed everything...', author: 'John Smith', role: 'CTO, Tech Co' },
|
|
206
|
+
]}
|
|
207
|
+
/>
|
|
208
|
+
|
|
209
|
+
<CTASection
|
|
210
|
+
heading="Ready to Get Started?"
|
|
211
|
+
primaryCTA={{ text: 'Contact Us', href: '/contact' }}
|
|
212
|
+
/>
|
|
213
|
+
</main>
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Handling Special Cases
|
|
219
|
+
|
|
220
|
+
### CMS-Driven Content
|
|
221
|
+
|
|
222
|
+
If the Webflow site uses CMS collections:
|
|
223
|
+
|
|
224
|
+
1. Export collection data as CSV
|
|
225
|
+
2. Note in the Migration Spec which sections are dynamic
|
|
226
|
+
3. Implementation options:
|
|
227
|
+
- Convert to static content if collection is small
|
|
228
|
+
- Create corresponding data files (JSON/MDX)
|
|
229
|
+
- Integrate with a headless CMS
|
|
230
|
+
|
|
231
|
+
### Custom Animations
|
|
232
|
+
|
|
233
|
+
Webflow's interactions don't translate directly. Note them in the spec:
|
|
234
|
+
|
|
235
|
+
```markdown
|
|
236
|
+
### Section 2: Features
|
|
237
|
+
- **Suggested Component**: FeaturesGrid
|
|
238
|
+
- **Animation Note**: Cards fade in on scroll, staggered 100ms
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
The agent can use `AnimatedSection` for scroll-triggered animations.
|
|
242
|
+
|
|
243
|
+
### Complex Custom Sections
|
|
244
|
+
|
|
245
|
+
Some Webflow sections may not map to existing components:
|
|
246
|
+
|
|
247
|
+
```markdown
|
|
248
|
+
### Section 5: Interactive Map
|
|
249
|
+
- **Suggested Component**: CUSTOM NEEDED
|
|
250
|
+
- **Description**: Full-width map with location markers and popup info
|
|
251
|
+
- **Implementation Notes**: Need to integrate a mapping library (Mapbox/Google Maps)
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Flag these for manual implementation or component creation.
|
|
255
|
+
|
|
256
|
+
## Workflow Summary
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
260
|
+
│ 1. EXPORT (Human) │
|
|
261
|
+
│ - Export code from Webflow dashboard │
|
|
262
|
+
│ - Export CMS collections as CSV (if applicable) │
|
|
263
|
+
│ - Unzip into working directory │
|
|
264
|
+
└─────────────────────────────────────────────────────────────┘
|
|
265
|
+
↓
|
|
266
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
267
|
+
│ 2. EXTRACT (Agent) │
|
|
268
|
+
│ - Read exported HTML files │
|
|
269
|
+
│ - Generate Migration Spec (sections → components) │
|
|
270
|
+
│ - List assets to copy │
|
|
271
|
+
└─────────────────────────────────────────────────────────────┘
|
|
272
|
+
↓
|
|
273
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
274
|
+
│ 3. REVIEW (Human) │
|
|
275
|
+
│ - Review Migration Spec │
|
|
276
|
+
│ - Adjust component choices if needed │
|
|
277
|
+
│ - Approve │
|
|
278
|
+
└─────────────────────────────────────────────────────────────┘
|
|
279
|
+
↓
|
|
280
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
281
|
+
│ 4. IMPLEMENT (Agent) │
|
|
282
|
+
│ - Create pages using framework components │
|
|
283
|
+
│ - Copy and organize assets │
|
|
284
|
+
│ - Wire up navigation and links │
|
|
285
|
+
└─────────────────────────────────────────────────────────────┘
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## Tips for Success
|
|
289
|
+
|
|
290
|
+
1. **Start with code export** - It's cleaner than scraping the live site
|
|
291
|
+
2. **Review the spec carefully** - This is your chance to catch issues before implementation
|
|
292
|
+
3. **Keep the original** - Don't delete the Webflow export until migration is verified
|
|
293
|
+
4. **Test thoroughly** - Compare the implemented site to the original visually
|
|
294
|
+
5. **Iterate** - The first pass rarely gets everything; refine as needed
|
|
295
|
+
|
|
296
|
+
## Related Documentation
|
|
297
|
+
|
|
298
|
+
- [Components Overview](../components/overview.md) - Full component reference
|
|
299
|
+
- [Internationalization](../features/internationalization.md) - Adding multi-language support
|
|
300
|
+
- [Analytics Setup](./analytics-setup.md) - Tracking for the new site
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zoyth/simple-site-framework",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A configuration-driven framework for building professional service websites",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework",
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"@radix-ui/react-tooltip": "^1.0.0",
|
|
136
136
|
"@tailwindcss/typography": "^0.5.0",
|
|
137
137
|
"framer-motion": "^11.0.0",
|
|
138
|
-
"lucide-react": "^0.
|
|
138
|
+
"lucide-react": "^0.400.0",
|
|
139
139
|
"next": "^14.0.0 || ^15.0.0 || ^16.0.0",
|
|
140
140
|
"next-mdx-remote": "^5.0.0",
|
|
141
141
|
"react": "^18.0.0 || ^19.0.0",
|