Skip to content
The Briefing archive

8,600+ readers · Every Tuesday

The Briefing·Edition 101·

How to migrate your app from Lovable to Claude Code.

Step-by-step guide to migrating your Lovable app to Claude Code. Learn how to move from Lovable's managed platform to a stack you own and control.

Kieran BallJames Devonport

Kieran Ball & James Devonport

Co-founders · 6 min read · 4 sections

ShareLinkedIn

01 / 04

On Your Radar

Codex is now on your phone

If you use the ChatGPT mobile app and Codex, you can now use Codex in the ChatGPT app while you're on the go. This is a feature Claude users have had for a little while so nice to see OpenAI keeping up.

Claude will work with OpenClaw again (but at what cost!)

Anthropic announced new pricing for people who want to use their Agents SDK for third-party tools like OpenClaw. This usage comes under a separate credit system. Judging by the comments on their announcement tweet, people are not happy.

Notion launches a developer platform

Notion just launched a developer platform that transforms workspaces into programmable AI agent hubs. The platform lets you sync external data, build custom tools, and bring coding agents like Claude and Codex directly into your workspace as teammates.

02 / 04

Deep Dive: How to migrate a Lovable project to Claude Code

Lovable is brilliant for getting from zero to working app in a weekend, but at some point you may decide you want to move your app to another platform.

Your side project starts working, you've got a few users, and you start to feel nervous. Your data sits in someone else's tenant. Your AI bill is opaque. The production security defaults are missing. The moment you want a real developer to touch the codebase, the friction starts.

The good news is that the code Lovable generates is real, modern TypeScript and React. You're not throwing your work away. You're just unplugging it from Lovable's services, one piece at a time, and moving onto a stack you actually own.

Lucky for you, we just went through the process using Claude Code, so we thought we'd share our learnings.

Why move off in the first place

  • Control your data. Your database lives inside Lovable Cloud, which is effectively Lovable's own Supabase project. This makes basic things like querying your data difficult.
  • Own your AI bill. Every AI call routes through Lovable's AI gateway with Lovable as the middleman. Move to more flexible option like OpenRouter and you'll see exact per-model spend, and you can switch between Gemini, Claude and GPT without changing accounts.
  • Production-readiness. Lovable defaults skip important guardrails. Master database keys used in publicly-callable functions without ownership checks, in-memory rate limiters that don't survive serverless, .env files that don't always get added to .gitignore. Fine for an MVP, a risk once real people use it.
  • Future hires. When you bring in an experienced developer (or a more capable agent), they expect git, tests, proper env handling, and a normal deploy story. None of that is in your way once you've moved.

The order to do things in

Migrate in the wrong order and you'll spend a frustrating evening with a half-broken app. The order we'd run:

  1. Push your Lovable code to your own GitHub repo.
  2. Install Claude Code and clone the repo locally.
  3. Lock down your secrets before anything else (see below).
  4. Audit the code with Claude to get a baseline.
  5. Set up your own Supabase project and migrate the database - Claude will have the schema and will guide you through the process.
  6. Swap Lovable's AI gateway for OpenRouter.
  7. Verify it works end-to-end before any refactoring.
  8. Remove the Cloudflare scaffolding template and switch to your platform of choice e.g. Vercel (Lovable seems to use Cloudflare under the hood).
  9. Fix the audit findings (tests, dependencies, RLS, rate limiter).

Most of these are Claude Code's job. You confirm and provide keys.

Lock down your secrets before anything else

There's a default in the Lovable starter worth knowing about. The file that contains your secret API keys etc, which is called .env, is not always added to the list of files, called .gitignore, which are not uploaded to Github.

This means the moment you push your repo to GitHub you've also pushed your API keys to anyone watching. If .env is already in your git history, every key in it has to be treated as compromised even if the repo is private (which it is by default). Generate fresh keys before you do anything else.

The second job is making sure Claude Code can't read your secrets either.

Claude is eager to read files it thinks are relevant, and the moment a key lands in a conversation it could potentially be leaked as it travels to and from Anthropic's servers.

The fix is a small file at .claude/settings.local.json that blocks both direct file reads and bash workarounds.

Tell Claude to set it up.

"Set up project-level deny permissions that prevent you reading the .env file. Allow .env.example to remain readable."

Test it by asking Claude to read .env. You should see "denied by your permission settings" for both the Read tool and cat. If either opens the file, the rule is wrong and worth fixing before you carry on.

A simple productivity win

This tip works for any Claude Code project. Ask Claude to create two files at the root of your project before doing anything else.

  • CLAUDE.md is a short summary of what the app is, where things live, and how you want Claude to talk to you. Claude reads it at the start of every session. Make sure the file mentions where MEMORY.md is and that it should keep it updated.
  • MEMORY.md is a running log of decisions, tradeoffs, and direction changes. Updated whenever something meaningful happens.

Without these, every new session starts from scratch. With them, you can open a fresh chat three months later, ask "what's in MEMORY.md?" and be back up to speed in thirty seconds.

The "about me" section at the top of CLAUDE.md is the bit that pays off most. Tell Claude you're non-technical and want plain English with everyday analogies. Tell it which folders not to touch. Tell it to always confirm before destructive changes. It will.

Tips and tricks worth knowing

  • Never paste secrets into the Claude chat. Once a key is in the transcript, it's everywhere the transcript goes. Open .env in a text editor app instead. You can even ask Claude to open the file for you - you edit, Claude never sees the value.
  • Use the Supabase MCP. Claude can talk to your database directly rather than you copy-pasting SQL into the dashboard. This is the single biggest workflow change of the whole migration.
  • Subagents for audit steps. "Use 3 subagents to analyse this codebase and give me a simple report on the build quality and areas for improvement" is a one-line prompt that gets you a real roadmap.
  • Anything prefixed VITE_ ends up in the browser. Get this wrong and you've shipped your master database key to every visitor. SUPABASE_SERVICE_ROLE_KEY and OPENROUTER_API_KEY are server-only, no prefix.
  • Playwright MCP for testing. This is another thing you can't do in Lovable. Once the migration is done, ask Claude to "Test the app via Playwright, sign up, use all features, fix anything that fails" is faster than poking through every page yourself.

Why it's worth a focused afternoon

After this move, your data is yours. Your AI bill is transparent. You can deploy as often as you want. You can hand the codebase to a real developer without apologising for it.

The trade is that nobody is holding your hand on dashboards or deploys anymore. That's what Claude Code is for.

03 / 04

Highlights from the Create With Slack Community ⭐️

Deborah launched AIBuilderRank.com just as Lovable rolled out their SEO update. Talk about perfect timing, even if it meant some quick rewording to keep everything current!

Mark celebrated a small win with 50 users of his chrome extension.

Kieran tested his vibe-coded networking game at a Tech for Good meetup with complete strangers. Eight people, everyone connected, selfies taken. Now he's planning to bring it to the Create With conference! 🎉

Join the Create With community

04 / 04

Final Thoughts

There are a million memes about vibe coders but we particularly enjoyed this one.

When vibe-coders explain what they actually do.

@VadimStrizheus

Worth passing on?

ShareLinkedIn
Kieran Ball

Written by

Kieran Ball

Co-founder, Create With

James Devonport

Written by

James Devonport

Co-founder, Create With

The Create With Briefing

Get the next edition first.

Real-life use cases, the tool changes that matter, and the best events near you. Free, every Tuesday, to 8,600+ readers.