Fixes · Deploys that break
Replit Auth and Replit storage don't work outside Replit
An app built by Replit's Agent signs people in with their Replit accounts and keeps files in Replit's storage. Moved anywhere else, nobody can sign in. Change both first.
Most common in apps built with Replit.
What you see
Deployed outside Replit, sign-in fails (REPLIT_DOMAINS isn't set), and saving or loading files errors.
Why it happens
server/replitAuth.ts signs people in through Replit's login service, and @replit/object-storage and @replit/database are Replit's own services. None of them exist outside Replit.
How to fix it
- Ask Replit's Agent, or your AI tool, to switch sign-in to Clerk or Supabase Auth.
- Move files to Cloudflare R2 or Supabase Storage, and Replit Database records into Postgres.
- Bring the Postgres data along: in Replit's Shell, pg_dump -Fc --no-owner --no-privileges "$DATABASE_URL" > replit.dump.
Or ask your AI tool to fix it
Paste this into Lovable, Bolt, v0, Replit or Cursor, and let it make the change.
This app has to run outside Replit. Replace sign-in with Replit accounts (server/replitAuth.ts, REPLIT_DOMAINS) with Clerk, and replace @replit/object-storage and @replit/database with S3-compatible storage (Cloudflare R2) and Postgres. Keep every page and API route working the same way. Don't change what the app does. Never put a secret key or password in the code: read it from an environment variable. If a step has to be done outside the code, like revoking a key in a provider's dashboard, list it for me at the end instead of skipping it.
How Launchpad helps
The launch check finds Replit-only services before you move. The console's wizard marks them as blockers, sends the app to your own server (Replit apps are an Express server), and launchpad db restore loads the Replit database's dump into the new one.
Check your app for this, freeJoin the waitlist