Radial app
Bring in a live site
Moving off Webflow, Framer, Squarespace or another builder? Point Radial at the live site. It copies the site into a new Astro or Next.js project you own, and an agent rebuilds it page by page, checking its work against screenshots of the original.
Start a migration
Three ways in, one flow behind them:
- From Home: Open project, then Bring in a live site. Type the address and press Check (Radial names the builder it finds), choose Astro or Next.js, drop in anything else you have from the site, name the project, then Bring it in.
- From the Home chat: ask it to bring in your site, for example "bring in agency-site.com so I can edit it in Radial". It asks which framework you want, then starts the same flow.
- From the command line (or any agent, through the CLI or MCP):
radial migrate start https://www.agency-site.com --framework astro
radial migrate start agency-site.com --framework next --include ~/Downloads/posts.csv
radial migrate start agency-site.com --framework astro --only / # homepage first
Radial creates the project, captures the site, opens the project and starts a chat named after the site with the migration as its first task. If Claude Code asks whether you trust the new folder, choose "Yes, I trust this folder".
Astro or Next.js
- Astro: static pages, closest to the original markup. The usual choice for a marketing site.
- Next.js: React, for app-like features later.
Radial always asks. It never picks a framework for you.
What Radial captures
- Every page as served, found through the sitemap and the site's own links, including redirects and pages that answer with errors.
- The files those pages load: stylesheets, scripts, images, fonts, video and documents.
- An inventory of every route with its status, title, description, canonical tag, headings, links, scripts and forms, plus the page templates, likely CMS collections and third-party tools the site uses.
- Reference screenshots at 390, 768 and 1440 pixels wide of the homepage and a page from each main template.
The capture lives in Radial's data for the project, outside the site's source, and is never committed. Your live site isn't changed. A capture can't hold pages behind a login, the builder's server features (forms, search, memberships, commerce), redirects that only exist in the builder's settings, or traffic history. The agent names those gaps instead of guessing.
Bring what you have
Drop files into Anything else from your site, or
pass --include once per file or folder: CMS exports,
logos, fonts, brand guidelines, copy docs. CMS exports become the
source of truth for your collections, since they hold drafts, hidden
fields and references the public pages don't show. Original logos and
fonts win over captured copies.
| Builder | Where the export lives |
|---|---|
| Webflow | CMS panel: pick a collection, then Export. One CSV per collection. |
| Framer | Open the CMS, pick a collection, then ⋯ → Export CSV. |
| Squarespace | Settings → Advanced → Import / Export → Export (a WordPress XML file). |
| Wix | Content Manager: pick a collection, then More actions → Export to CSV. |
| WordPress | Tools → Export → All content. |
What the agent does
- Asks one thing first: who edits the content after the move. In-repo content keeps page copy as plain text and turns collections into Markdown files, all editable in Radial's Content panel. A hosted CMS is proposed instead when your editors need their own studio, and nothing is set up until you agree.
- Rebuilds one to one: the original markup, class names and stylesheets; the same URLs, trailing slashes and redirects; each page's title, description and social tags; your analytics and third-party scripts with their IDs. Forms lose the builder's backend, so it asks how you want submissions handled.
-
Checks its work with
radial migrate compare, a production build, and the behavior that matters: menus, sliders, tabs, video and forms. -
Keeps a record in
.context/migration.md: the source, your decisions, every intentional difference, and where things stand (implementation tested, visual parity checked, staging verified, production verified). - Asks before publishing, even to staging. Pointing your domain at the new site is a separate step you take when you're ready. Keep the old site running until then.
Start with part of a site
--only <path> captures just those pages and
wherever they redirect, not the pages they link to. Repeat it for
more pages. Links to the rest keep their original paths, and the
sitemap is still saved so the agent knows what exists. Bring in more
later from inside the project:
radial migrate capture https://www.agency-site.com --only /pricing --only /about
Compare any time
radial migrate compare # every reference page, three widths
radial migrate compare --route /pricing # one page
radial migrate compare --widths 1440 # one width
Each run screenshots the live page and your local preview the same way, then writes a diff image per width with changed pixels in magenta, and a report with the share of pixels changed, both page heights, and the bands that differ. Video, carousels and animations always show some change, so look at where it is, not just how much.
Models, time and cost
A migration is long, detailed work. For best results, use one of the latest frontier models at high to max effort. The agent runs on your own Claude Code, Codex or Cursor account.
For a sense of scale: in our testing, one design-heavy Webflow
homepage took about 25 minutes of agent time with Claude Opus 5.5 at
high effort, roughly $6 at API list prices (covered by a Claude Max
plan). Setup and capture took about two minutes. Bigger sites take
longer, and --only lets you start small.
Radial reads the public site the way a browser does. Bring in sites you own or have the rights to move.