Webflow → Astro
Rebuild a Webflow site in Astro while preserving design intent, CMS content, assets, URLs, SEO, forms, search, localization, and a recoverable production path.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
Webflow
- Visual design, CMS, hosting, and interactions give designers strong production control
- Editors get a purpose-built publishing workflow instead of raw files
- Pricing, collection limits, and proprietary structure constrain portability
- Themes, extensions, and content models add maintenance and portability constraints
Astro
- Content-focused sites ship very little client JavaScript by default
- Managed deployments reduce infrastructure and release-management work
- Repository-based publishing and custom integrations require engineering ownership
- Runtime assumptions, platform services, and pricing models shape the architecture
Astro: Content-focused sites ship very little client JavaScript by default. This removes a major source-side concern: Pricing, collection limits, and proprietary structure constrain portability.
What you lose: Visual design, CMS, hosting, and interactions give designers strong production control. What you inherit: Repository-based publishing and custom integrations require engineering ownership.
Know the shape of the move.
This timeline assumes
- A content or marketing site with at most 1,000 routes, 20 CMS collections, and 5 GB of assets.
- Ecommerce and user accounts require a separate approved replacement.
- A paid Webflow Workspace can produce the code export.
- Astro becomes the source of truth after cutover.
- The destination is tested on a private preview before DNS changes.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Static HTML, CSS, JavaScript, and images | partial | high | Webflow exports these files, but they are generated output rather than maintainable Astro components. | Use export as visual and behavior reference, then rebuild shared structure. |
| CMS collection data | manual | critical | CMS content is not included in exported code; collections export separately as CSV. | Export every unfiltered collection and map it to typed Astro content. |
| Collection pages and lists | lost | critical | Exported collection pages have no bound content and lists show empty states. | Generate routes and lists from Astro collections. |
| Forms and submissions | lost | critical | Exported Webflow forms, uploads, and reCAPTCHA do not process submissions. | Export history and implement a tested destination handler. |
| Site search | lost | high | Webflow search does not work on exported sites. | Build static or hosted search and test indexed coverage. |
| Localization | partial | critical | Only primary-locale exported pages are included; localized content requires separate export and routing. | Export localized CMS data and define locale routes, alternates, and fallback. |
| Password protection and user accounts | lost | critical | Protection and account functionality are not included in code export. | Remove sensitive output and choose an explicit authentication replacement. |
| Ecommerce | lost | critical | Products can export as data, but checkout, orders, customers, and commerce behavior do not transfer. | Run ecommerce as a separate migration with payment reconciliation. |
| Animations and interactions | partial | medium | Exported scripts may work, but dependencies and generated markup are brittle. | Test every interaction and rebuild critical behavior in maintainable code. |
| SEO, redirects, and analytics | manual | critical | Metadata, schema, redirects, domains, consent, and analytics need explicit destination configuration. | Crawl both sites and require route, metadata, schema, and tracking parity. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| Static page | Astro page or route | manual | Extract shared layouts and components. |
| CMS collection | Astro content collection | transform | Define a schema before import. |
| CMS item slug | route slug | automatic | Preserve public URLs. |
| Rich text | Markdown, MDX, or HTML body | transform | Sanitize embeds and absolute URLs. |
| Reference/multi-reference | content reference | transform | Resolve stable IDs before rendering. |
| Asset URL | local or managed asset | transform | Copy originals and preserve alt text. |
| Form | Astro endpoint or external form | manual | Rebuild validation, spam control, storage, and notices. |
| Redirect and page SEO | host redirects and Astro head data | manual | Verify by crawl. |
Make the move recoverable.
Create the source-of-truth backup
Preserve code, every collection, asset, route, setting, integration, and submission before rebuilding.
- Export the complete Webflow code ZIP.
- Export every CMS, Ecommerce, User Account, localization, and form dataset separately.
- Crawl production for URLs, metadata, schema, assets, forms, search, and status codes.
- Capture interactions, breakpoints, custom code, redirects, DNS, analytics, and integrations.
- Hash all archives.
Proof to capture: A manifest reconciles routes, collection rows, assets, forms, locales, integrations, and archive hashes.
Typed content model
Convert collection CSVs into validated Astro entries.
- Map every field and relation.
- Normalize dates, slugs, booleans, and assets.
- Fail builds on invalid content.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Route and asset registry
Prevent SEO and media loss.
- Map each source URL to a destination or redirect.
- Copy and hash assets.
- Check links, canonicals, alternates, and status codes.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
The code export looks complete but omits CMS
Collection lists render empty in the export.
- Consequence
- Most public content disappears.
- Mitigation
- Export and reconcile collections separately.
Stop if: Any live CMS route lacks a content row and destination.
Protected content becomes public
Password-protected Webflow pages are present in static output.
- Consequence
- Sensitive information is exposed.
- Mitigation
- Classify routes and exclude them until authentication exists.
Stop if: Any restricted content is reachable anonymously.
Forms appear functional but drop submissions
The UI shows success without durable storage or notification.
- Consequence
- Leads and requests disappear.
- Mitigation
- Test the full submission record and alert path.
Stop if: Any production form lacks recoverable evidence.
Do the work in this order.
- Days 1–4 · inventory
Inventory and backup
12–20 hours active4 days elapsedOwner review waiting- Export all data and code.
- Crawl routes and runtime behavior.
- Approve replacements.
Depends on: Webflow admin and export plan
Stop / go checkpointModel?
Go when: Every route, collection, runtime feature, and restricted area has a disposition.
Stop when: Critical dynamic behavior is unknown.
- Days 5–8 · model
Content and route model
12–18 hours active4 days elapsedEditorial review waiting- Define Astro schemas, routes, components, assets, and redirects.
- Transform a representative dataset.
Depends on: Complete exports
Stop / go checkpointBuild?
Go when: Representative content and relations validate.
Stop when: Any critical URL or field is unmapped.
- Days 9–18 · build
Rebuild
25–45 hours active6–10 days elapsedCode and visual review waiting- Build templates and components.
- Import content and assets.
- Replace forms, search, localization, and integrations.
Depends on: Approved model
Stop / go checkpointPreview?
Go when: Build, content, runtime, and access tests pass.
Stop when: A critical feature lacks a tested replacement.
- Days 19–24 · rehearse
Crawl and rehearse
8–16 hours active4–6 days elapsedStakeholder review waiting- Compare crawls and screenshots.
- Test forms, search, analytics, performance, and rollback.
Depends on: Complete preview
Stop / go checkpointCut over?
Go when: Blocking parity and owner checks pass.
Stop when: URLs, SEO, access, or submissions differ critically.
- Days 25–30 · cutover
Freeze and switch
3–11 hours active2–6 days elapsedDNS and observation waiting- Freeze Webflow edits.
- Import final content delta.
- Switch DNS and monitor.
Depends on: Passed rehearsal
Stop / go checkpointClose rollback?
Go when: Production crawl and runtime checks pass for seven days.
Stop when: Critical traffic, forms, or content regress.
Cut over with a way back.
Cutover
Make the verified Astro build authoritative without losing final Webflow edits.
- Freeze Webflow publishing.
- Export and apply the final CMS delta.
- Build and crawl the release.
- Switch DNS or routing.
- Test critical routes, forms, search, analytics, and access.
- Keep Webflow intact.
Proof to capture: Production crawl matches the approved route registry and every blocking runtime check passes.
Rollback
Restore Webflow while preserving changes made after cutover.
- Freeze Astro content changes.
- Restore previous DNS or routing.
- Apply reviewed post-cutover content changes to Webflow.
- Re-enable Webflow forms and integrations.
- Test critical routes.
Proof to capture: Webflow again serves the canonical domain with current content and working runtime features.
- Missing critical routes or content
- Protected content exposure
- Form or search failure
- SEO status/canonical regression
- Unrecoverable runtime dependency
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | URL disposition | Crawl every source URL. | One 200 destination or one-hop permanent redirect. | Crawl diff. | |
V-02Blocking | Collection reconciliation | Compare rows and representative fields. | All in-scope items map. | Content manifest. | |
V-03Blocking | Binary coverage | Compare URLs, sizes, and hashes. | No missing critical asset. | Asset report. | |
V-04Blocking | Metadata and schema | Compare titles, descriptions, canonicals, robots, alternates, and JSON-LD. | Approved parity. | SEO crawl. | |
V-05Blocking | Submission lifecycle | Submit every form and upload path. | Validation, storage, notice, and alert pass. | Submission IDs. | |
V-06Blocking | Index coverage | Run known-result and no-result queries. | Required content is discoverable. | Search matrix. | |
V-07Blocking | Restricted routes | Test anonymous and authorized access. | No restricted content leaks. | Access log. | |
V-08 | Responsive parity | Compare key templates at approved breakpoints. | Meaning and interactions match acceptance. | Screenshot set. |
Remove the scaffolding safely.
Safe after: Seven stable production days, passed crawls, and owner sign-off.
- Archive Webflow exports and verification evidence.
- Revoke temporary tokens and integrations.
- Remove obsolete Webflow scripts and forms.
- Keep Webflow intact through the retention window.
- Cancel plans only after billing and recovery review.
- Schedule quarterly link, form, backup, and content validation.
Built to be reviewed.
Tested 2026-07-19. Next scheduled review: 2026-10-19.
- Webflow: export site codeAccessed 2026-07-19
- Webflow: CMS CSV import and exportAccessed 2026-07-19
- Astro: migrate an existing projectAccessed 2026-07-19