EngineeringCodeCross TeamUpdated
Leave Replit for a production host (2026)
Leave Replit for a host you run: export the app, move secrets off the pane, set up automatic builds, then switch your domain and test the live site.
Engineering
17 min
- Repl
- Lab
- Secrets
- Vault
- Proof
- Repl off
Not the host
Off the pane
Site still answers
Leaving Replit for a production host in 2026 means you can shut the Repl and the product still answers on a domain you own. A host is the live computer that serves the app. The code lives in a company Git repo. Secrets live on the new host, not only in the Replit pane. A second person can ship a change without opening the editor. A published Reserved VM can serve production; this guide checks whether you can move hosting independently of Replit.
CodeCross wrote this guide. CodeCross LLC is a Delaware-registered company with a postal address in Austin, Texas. Product and engineering are in Pakistan. Our engineers work on US Central hours. Short builder pages live on vibe coding. If you want a partner, start at Austin app development company. Book a call when a door is still red.
Moving a working app creates its own risk. First name the reason for leaving: an unsupported workload, contractual requirement, operational control, or measured cost constraint. A published Replit deployment may already be production. This guide is for teams that have decided to move its runtime and need to keep customers working during that change.
This article is the host cutover playbook after Replit. DNS cutover is the hour you point the public name at the new host. It expands get off Replit and Replit to production. It is not the org-Git proof on GitHub handoff after an AI builder, not the Postgres record on Supabase hardening after an AI builder, not the founder calendar on AI-builder exit plan for founders, and not the stay/harden/rewrite mark on rewrite vs harden. Those pages stay Git, rows, weeks, and layer verdicts. This page is whether the process lives off Replit. When the host or DNS is still fuzzy, book.
The short pages stay brief: migrate from Replit for extract, get off Replit for the runtime exit, Replit to production for preview-is-not-prod, Replit MVP hardening if you stay one more week, transition from Replit while the editor stays open, GitHub handoff for the org remote, and production-ready for the shared contract. The vibe coding hub maps other tool exits. This page stays the host move.
Production readiness and hosting independence are different decisions
Replit is paid to make the preview work tonight. A production host is paid to keep answering when the founder closes the tab. Those jobs collide. A green Publish click feels finished. The company is unfinished because nobody can start the same process on a machine Replit does not rent.
Replit’s own docs draw the line. Publish your app is four clicks and a .replit.app URL. Deployment types then offer hosting choices: Autoscale can drop to zero when idle. Reserved VM is one dedicated server that never sleeps, billed as a fixed month. Static serves files with no backend. Scheduled runs a command and stops. Agent apps are not Static. These are managed deployments, separate from the editor preview.
Replit Deployments say the quiet part: Publish saves a snapshot and runs it on Replit cloud, apart from the editor. Do not store real data on that filesystem. You cannot change region in place later. Deployment and publishing adds the trap: the editor preview can work while the published app fails, because development Secrets and deployment Secrets are separate stores. Shut the Deployment and the custom domain ties on it go with it. The files stay. The public name does not.
Before moving hosting, verify these five dependencies:
- Runtime: record the start command, dependencies, background jobs, and resource needs.
- Domain: identify the DNS owner and every callback or webhook that depends on the current address.
- Secrets: inventory names and access permissions; supply values securely to the destination and rotate where exposure or policy requires it.
- Data: copy the database and files separately from source code, then verify counts and restore behavior.
- Operators: have a second authorized person deploy and recover the app before cutover.
None of that is a reason to throw away the screens. Users already accepted those flows. It is a reason to stop buying ads until you can name the host, the vault, and the person who ships while the Repl is closed. If you cannot name those three, mark the host layer on rewrite vs harden. If the gap is Git seats rather than the host, leave this page and open GitHub handoff after an AI builder.
Ownership map: name the host, not the preview
The founder calendar seats Git, billing, and restore. This page seats the runtime. Exit of the host is complete when a second person, using a company account on a host you pay, can ship a change that answers on your domain while the original Repl is stopped. Until then the migration remains incomplete; that does not make the current deployment a preview.
Host ownership map — name a human on every row
Source of truth
Own
Company Git remote
Proof
Clone URL is org/name
Fail
Only the Repl tree
Secrets
Own
Host or vault, new values
Proof
Repl pane values fail
Fail
Keys only in Secrets tool
Process host
Own
Named host you can bill
Proof
Start without the Repl
Fail
Reserved VM / Autoscale only
Env + CI
Own
Runner builds and deploys
Proof
Green check, Repl closed
Fail
Publish tab is the only ship
Domain / DNS
Own
Records you can edit
Proof
Apex points at new host
Fail
Still A + replit-verify TXT
Smoke path
Own
Signup, session, one write
Proof
Done on the new origin
Fail
Only the editor preview
Kill the Repl
Own
Stop Deployment; site lives
Proof
Public URL still answers
Fail
Need a Reserved VM to stay up
Write the proof next to the name. “We published” is false until a clean machine starts the app from Git. “We have secrets” is false until the old pane values fail and the new ones live only on the host. “We have a domain” is false until the A record no longer aims at Replit and the replit-verify TXT is gone or replaced by the new host’s check. “We left” is false until you shut the Deployment and the public origin, the live name people type, still answers.
Export the tree. Do not export the hostage.
You cannot move a Replit project to another account as one object. Projects and files says to share and fork, or download a zip and upload it again. After the copy you set up secrets, the database, and deploy settings from scratch. Those pieces are not in the zip. Git sync can keep the tree two-way. It does not move the vault or the rows. Treat the export as files you can compile. Treat everything else as a list you must reseat.
This page does not repeat the org-Git gates. If the remote is still a personal repo, or only the founder can merge, stop here and finish GitHub handoff after an AI builder first. A host that deploys from a hostage remote is a second hostage. About organizations is the shared account. Transferring a repository moves the tree and the things stuck to it. It does not move Replit Deployments. Put the company remote in place, then point the new host at that remote. if you cannot name the org owner and the host owner as two seats, book.
What to take, and what to leave:
- Take source, lockfiles (or make them), the start command you can name, and a written map of Nix or system packages the Repl hid.
- Take secret *names* into an env template. Mint new values on the destination. Never commit the Repl
.env. - Leave
.replitcaches, editor-only junk, and local secret files out of the remote. - Leave the database dump on a separate path. CI should not invent schema.
- Decide each multiplayer scratch file: keep it or drop it. Do not discover a missing screen after DNS moves.
The extract list on migrate from Replit is the short form. Here the test is simpler: a clean runner installs, builds, and starts with the Repl closed. If start only works inside Replit’s shell, the exported app still has a portability dependency to resolve.
Secrets leave the Repl before DNS does
Keys are the first thing that follows you off the island — and the first thing that leaks if you copy them wrong. Replit’s Secrets tool encrypts values and injects them as environment variables. That is good hygiene inside the editor. It is not a company vault. Multiplayer editors can see names and values. Organization members who are not owners still cannot view values in the pane, but they can print the environment. Anyone who can run the app can dump the drawer.
Editor secrets and published secrets are not the same list. Projects and files and deployment help both say it: the development Secrets pane is only for the editor. The published app reads deployment secrets. Change one store and the other stays old until you Publish again. That split is why a preview can pass and the live URL can fail. When you leave, keep the split — but move both lists off Replit. Names go in a template in Git. Values go in the new host’s secret store. Then rotate. Old pane copies should fail.
Replit also injects its own variables: REPLIT_DOMAINS, REPLIT_USER, REPLIT_DEPLOYMENT, REPLIT_DEV_DOMAIN. Code that branches on those names will break on Fly or Render. Search the tree for them before the first deploy. DATABASE_URL from Replit’s database add-on is a connection you must replace, not a souvenir you paste into the next host.
Pick a host from the app, not from an ad
There is no default “best” host in 2026. There is a match between how the Repl actually runs and how the new host starts a process. Replit already told you the shapes: Autoscale (busy then sleep), Reserved VM (never sleeps), Static (files only), Scheduled (run then stop). Copy that shape. Do not copy the brand.
Host match — pick from how the Repl runs
Static files only
Match
Vercel or Render static
Proof
No backend on the Repl
Skip
Agent apps need a server
Web / API, can sleep
Match
Fly, Render, Vercel, App Runner
Proof
Cold start is acceptable
Skip
If sockets must stay warm
Machine that stays running
Match
Fly Machines or Render web
Proof
Process stays resident
Skip
Sleep-to-zero platforms
Scheduled job
Match
Host cron or a worker
Proof
Run, then stop, on a clock
Skip
A web URL is not the job
Score a host on three proofs: Git in, secrets in, DNS in. Fly secrets become environment variables; you can list names, not values. Fly’s GitHub Actions guide deploys with an app token stored as an Actions secret. Render’s Git provider rebuilds on a push. Render environment variables say not to commit .env. Render custom domains keep onrender.com and add yours. Vercel environment variables split Production, Preview, and Development; a change applies only to the next deploy. AWS App Runner can read GitHub or Bitbucket and inject runtime secrets from Secrets Manager or SSM. Those pages score a host. They do not pick a logo.
Two founder rules keep the list honest. First: if the Repl needed a process that never sleeps, do not move it onto a platform that scales to zero unless you have measured the cold start on the real signup path. Replit Autoscale already warned you the first request after zero can take a few seconds. Second: if the app is a marketing page with no server, do not rent a reserved box. Match the shape. Then write the account owner, the region, and the rollback click on one card.
Env and CI: the Publish tab is not a pipeline
A pipeline is a file in the repo that a runner you do not sit at can execute. The Replit Publish button is a snapshot you trigger by hand. Both can put bits on the internet. Only one survives a founder on a plane.
Land three jobs, in order. Install and build on a clean runner. Deploy only after that job is green. Smoke the live origin after deploy. Put secret names in the workflow. Put values in the host or in Actions secrets — not in the YAML. Fly stores FLY_API_TOKEN as a repository secret. Render can wait until checks pass. Vercel and App Runner both take Git as input and env as a side store. Pick one path. The production-ready contract still applies: no cutover without a tested rollback. GitHub handoff asks whether a second person may merge. This page asks whether that merge lands off Replit.
Do not let the first CI job be “deploy.” The first job is “this tree builds without Nix, without the Secrets pane, and without an open Repl.” If that job is red, you are not ready to point DNS. You are still extracting. Stay on migrate from Replit until the runner is green.
Domain and DNS: move the name last
Move DNS last, after the new origin already passes smoke tests. Replit’s custom domains page is the map of what you must undo. A .replit.app name is instant. Your own domain can take up to 48 hours. Replit wants an A record and a replit-verify=… TXT record that stays so the certificate can renew. www is a separate hostname. Unpublish removes the domain ties on that Deployment. If you bought the name through Replit, plan how you will point it somewhere else — or transfer it to a registrar you admin.
Cutover is a swap, not a prayer. Lower the TTL, how many seconds the old address may be remembered, a day before if you can. Stand the new host on a side name first. Smoke-test there. Then change the apex A or CNAME. The apex A or CNAME is the line that sends the bare name to the new host. Remove the Replit A and the replit-verify TXT so the old certificate path cannot fight the new one. Keep .replit.app for a few days as a rollback door — but stop linking it in ads, OAuth, and email. Update login callbacks, webhooks, and CORS in the same hour you flip DNS. Those allowlists do not update themselves.
If Auth still allows *.replit.app, you have not left. If sitemap and canonical tags still print the Repl hostname, search may keep sending people to the previous host you plan to shut down. Transition from Replit is the overlap week: editor open, host live, DNS not flipped yet. Use that week. Do not skip it to “look live.”
Smoke tests, then kill criteria
A smoke test is a short path a stranger can finish. It is not a screenshot of the home page. On the new origin, with production secrets, complete signup, get a session, and write one durable record. Then sign out and sign back in. Then hit a URL that used to live on .replit.app. If any of those fail, DNS stays on Replit. You have a staging host, not a cutover.
Replit host cutover — stop when a step is red
01 →
Inventory
Tree, secret names, database, domain, who can Publish
02 →
Export to org Git
Zip or sync; remote is the company repo, not the Repl
03 →
Mint secrets on the host
New values in the host vault; old pane values scheduled to die
04 →
Boot on a named host
Fly, Render, Vercel, App Runner, or equal — match the process shape
05 →
CI without the Repl
Runner installs, builds, and deploys with the editor closed
06 →
Smoke on a side name
Signup, session, one write on a hostname that is not production yet
07
Flip DNS, then kill
Apex to the new host; stop the Deployment; confirm the public URL
Example operator weeks on a Replit host cutover
weeksUnpriced Reserved VM feature sprint
6–12 wks
More screens, same lab. Incident later.
Example calendar only, not a quote or a promise
Example operator weeks for planning. These are not measured project results or a quote.
Read the chart as a reservation, not a promise. Week 0 is cheap: if you cannot list secret names and the start command, later weeks thrash. Week 1 is the first boot on a host you pay. Weeks 1–2 land CI and a side-name smoke. Week 3 is the first week the Repl can go dark. The last bar represents additional feature work that competes with the migration schedule. These ranges are an example only, not a quote or a promise.
Overlap the bars when you have two humans. Do not overlap them with a paid feature that only ships from the Repl. A prompt that adds payments or a new login vendor waits until the side-name smoke is green. Replit MVP hardening can wrap a dangerous path for one more week. It is not a substitute for the kill date.
Kill criteria: pause features, not the product
A cutover without a kill date is a wish. Write the date you will stop shipping from the Repl, the date you will flip DNS, and the facts that send you back to a bound rewrite of the host.
Pause feature work when any of these are true:
- A migration deadline is inside two weeks and the replacement runtime has not passed its readiness checks.
- A required credential cannot be provisioned securely on the destination, or an exposed secret has not been rotated.
- CI cannot install and build with the Repl closed.
- A new prompt would add payments, a new OAuth app, or a second hostname while DNS still aims at Replit.
- Two people disagree about who can shut the Deployment.
Hire (or book a partner for a named gate) when the founder cannot be the second host admin and cannot land a workflow file; when the database has no restore you have actually run; or when week-0 inventory slipped past the kill date. Hire for host + vault + DNS — not for a new set of screens. Austin app development company is the company brief if you want that conversation. Austin mobile app development if the next door is a store binary that still points at this Repl.
Stop this cutover and reopen rewrite vs harden only when the host layer is irreparable: the tree cannot start outside Replit’s shell; secrets cannot be reproduced; or the only way to “make it work” is to keep Reserved VM as the compiler. That is a verdict on the extract. Write it down. Do not “leave Replit” by putting a prettier domain on the same Deployment.
If none of those have fired, keep the screens. Sequence the gates. The cheapest honest path in 2026 is a host you can name, on DNA users already accepted — with the accepted product behavior preserved.
Next steps
Walk the gates in order. Inventory the tree, the secret names, the database, and the domain. Export to a company Git remote. Mint new secrets on a host that matches how the Repl runs. Land a runner that builds with the Repl closed. Smoke signup, session, and one write on a side name. Flip DNS. Shut the Deployment. Confirm the public URL. Pause any prompt that only ships from a Reserved VM while a gate is red.
CodeCross LLC is a Delaware-registered company with an Austin postal address. Product and engineering are in Pakistan. We help operators turn a converting Repl into a host they can staff: export first, vault second, DNS last, a rewrite of the host only when the tree cannot start outside Replit. The Austin app development company page is the company brief. Austin mobile app development is the store-binary engagement. Our apps are on the App Store and Google Play. When you want a second pair of hands on the cutover, book a conversation.
The goal is not to punish vibe coding. It is to stop treating a Reserved VM that stays running as proof that a stranger on your team can keep customers online. Ownership of the host is the record. Exit is a vault plus a named process plus a domain that survives a dark Repl. Get those three right and most teams never need a second codebase.
FAQ
Can a Reserved VM count as my production host?
Yes, a published Reserved VM can be a production host. Replit’s deployment types distinguish persistent VM hosting from Autoscale and editor previews. Assess authorization, backups, monitoring, capacity, costs, and release controls. Moving to another provider is a separate portability decision, not a prerequisite for production.
If DNS already points at my Repl, have I left Replit?
No. A custom domain on Replit still uses Replit’s A record and a replit-verify TXT record that must stay for certificate renewal. Unpublish drops those ties. You finish the exit when the apex points at a host you pay and the Replit records are gone. Custom domains is the map of what you must undo.
Can I copy the Repl Secrets pane onto the new host?
Copy the *names*. Mint new *values*. Editor secrets and deployment secrets are already separate on Replit. A zip does not include them. After cutover, rotate the old pane values so a leaked screenshot dies. If a key was ever in chat or a committed file, rotate it now — not after ads.
Which host should a founder pick — Fly, Render, Vercel, or AWS?
Pick from how the Repl runs, not from a homepage. Files only can go to a static host. A web app that can sleep can go to Fly, Render, Vercel, or App Runner. A process that must never sleep needs a resident machine. Score each option on Git deploy, a secret store, and DNS you can edit. if two options still look equal and traffic is close, book.
Does GitHub sync mean I already left Replit?
No. Sync moves files. It does not move secrets, the database, or the Deployment. Org Git is a gate on the GitHub handoff page. This page asks a different question: can you shut the Repl and still serve customers? A synced repo with a Reserved VM still uses Replit hosting; that can be production, but it is not a completed hosting migration.
What smoke tests are enough before I flip DNS?
On the new origin, with production secrets: create an account, keep a session, write one record, sign back in, and open an old .replit.app path that should now redirect or resolve. If login callbacks still list Replit hostnames, you are not ready. If only the founder can run the test, you are not ready.
Thirty minutes with a senior teammate — honest next steps.
Want a second pair of eyes on your app?
Tell us what you built and where it's stuck. We'll tell you what it takes to make it ready for real users.
Prefer writing? Send project details on the contact page.