Set up forms, redirects, and sitemap
Forms don't migrate automatically. This is a full replacement. Choose your form handler before launch:
- Formspree or Formspark for straightforward contact forms
- HubSpot embedded forms if you're already on HubSpot
- A custom Next.js API route for forms with logic or webhook requirements
Open webflow/api/forms.json , the Forms API returned the complete field schema for every form on your site, including field types, labels, and validation rules. Use this as your spec when recreating forms in your replacement service. You don't need to manually inspect each form in the Designer.
For each form:
- Recreate fields in your chosen service using the API schema as reference
- Update notification email addresses
- Export any submission history you need to retain (available via the Form Submissions API:
GET /v2/forms/{formId}/submissions)
Export your Webflow redirect list from Site Settings > SEO > Redirects using the CSV export button. Then ask AI to generate vercel.json:
Convert this Webflow redirect CSV into a vercel.json file with a redirects array. Each entry should have source, destination, and "permanent": true. Cross-reference pages.json to confirm destination paths exist in the new site — flag any redirects pointing to a URL that has no matching page. Save the file to the project root.Test your redirect coverage before DNS transfer, any Webflow URL without a destination or a 301 becomes a 404 after cutover.
Enterprise plans: the 301 Redirects API (GET /v2/sites/{siteId}/redirects) lets you fetch the complete redirect list programmatically rather than exporting from the UI. Use it in the same API fetch script from the environment setup chapter to save webflow/api/redirects.json alongside your other API data.
Next.js doesn't generate either automatically. Install next-sitemap and ask AI to wire it up:
pnpm add next-sitemapAdd next-sitemap to this Next.js project. Create next-sitemap.config.js at the project root configured to read SITE_URL from the environment and generate robots.txt. Add a postbuild script to package.json so the sitemap generates automatically on every build.Verify /sitemap.xml and /robots.txt are accessible after your first deployment.
Next, you’ll set up draft mode and visual preview before launch.