From v0 or Bolt
Move a project from v0 or Bolt.new to Layout without redoing the work. What to port, what to rewrite, and how to prompt on day one.
If you have a project in v0 or Bolt.new and want to continue on Layout, you do not need to rebuild from scratch. This guide shows what to bring over, what to re-describe, and how to get a good first build on Layout.
What Layout gives you that is different
Before you migrate, know what you are moving to.
- Full-stack by default. Layout generates frontend, backend, and a Supabase database in the same project. v0 is frontend-first; Bolt runs a sandboxed stack in the browser.
- Persistent projects with versions. Every build is a version you can preview, revert, and branch from.
- One-click publish. Projects go live at
<subdomain>.layout-app.comwith no deploy step.
If you only need a static React component, v0 is a tighter fit. If you need a running app with data, Layout is built for that.
Three ways to migrate
Pick the one that matches how much of the original project you want to keep.
Re-describe from a prompt
The fastest path. Write a prompt that captures the app, attach a screenshot of the current version, and let Layout generate from scratch. This gives you a clean Layout-native codebase.
Best when the original project is small or early.
Rebuild from a URL
Paste your live app's URL into the Layout prompt. Layout visits the page, reads what is there, and rebuilds the UI. Describe the data and backend in chat from there.
Best when your app is already deployed and publicly accessible.
Screenshot-driven rebuild
Take screenshots of the old app, page by page, and drop them into prompts as you rebuild. See Using images in prompts.
Best when the app is mostly about visual fidelity.
The migration prompt template
Whichever path you pick, your first Layout prompt should be specific. Use this shape.
Build {one-line description of the app}.
Audience: {who uses this}
Core flow: {what the main user does, step by step}
Data: {entities and fields — the schema in plain English}
Design: {tone, theme, any screenshots attached}
Out of scope: {what NOT to build yet}
Reference: I have a working version in {v0 / Bolt} — I attached a screenshot
of the main screen. Match the layout. Colors can change.If you are using the URL path, a shorter prompt works:
Rebuild this app: {URL}
Keep the layout and core flow. Rebuild the data layer with Supabase.
Out of scope: {anything to skip}Attach the screenshot of the app's main screen in the same prompt. Paste or drag it into the prompt box.
What to expect, feature by feature
A sensible first day
Scope down
Pick the smallest version of the app that is still useful. Port that first. Extra pages and features are cheap to add once the core works.
Write the migration prompt
Use the template above. Attach a screenshot of the main screen. If you are using the URL path, paste the URL into the prompt instead of attaching a screenshot.
Review the first build
Open the preview. Check the layout, the main flow, and the data model. If something is off, describe the correction — do not try to rebuild the whole app in one follow-up.
Publish a staging version
Once the core works, pick a subdomain and publish. You now have a shareable URL and a checkpoint to return to.
Port feature by feature
Add the rest of the pages one prompt at a time. Attach screenshots from the old app when layout matters.
What not to do
- Do not paste the entire old codebase in one prompt. Layout handles project structure on its own. Large code dumps confuse the AI more than they help.
- Do not try to match pixel-for-pixel. Get close and move on. Fighting the design system for 1-pixel parity burns credits and time.
- Do not skip the rollback safety net. Clone the project before any risky large-scale change. See Recovering from a bad change.