OxyPages

How To Move A Site Off The Replit Hosting

How To Move A Site Off The Replit Hosting

The published link went quiet, or the plan is lapsing. Here is how the Replit hosting really ends, which projects you can move, and where to put them next.

The OxyPages Team · · 8 min read

You built something on Replit, it worked, and now you want it somewhere else. Maybe the published link went quiet. Maybe you closed the tab and the preview address stopped answering. Maybe a plan is lapsing this month and you would rather not find out the hard way.

Whatever brought you here, the Replit hosting question is not actually the first question. This one is:

Is the thing you built a set of files, or a running program?

If it is files, you can download it and put it on any static host in about a minute, usually for nothing. If it is a running program, no static host on earth can serve it, and every "just upload the folder" guide is about to cost you an afternoon.

None of this is a knock on Replit. It is a genuinely good place to build, and most people reading this are still building there. This is only about where the output goes afterwards.

TL;DR: Download the project from the three-dot menu at the top of the file tree, "Download as zip". Then check what you actually have. If it is HTML, CSS, JavaScript and images, or a front-end project you can build into a dist folder, upload that folder to any static host and you are done. If it has a server file, a database or secrets it reads at runtime, it is an application, and a static host cannot run it. That one goes to Render, Railway, Fly.io or a small VPS instead.

Is It A Static Site Or A Running App?

It is an app if anything has to execute on a server when a visitor arrives. It is static if the visitor's browser gets the finished files and does the rest. What a static site can and cannot do is the longer version of that line.

Open the file tree and look. You are hunting for four specific things, and any one of them settles it.

  • A server file: server.js, index.js with an Express import, app.py, main.py with Flask or FastAPI
  • A database of any kind, including Replit's built-in one or a Postgres connection string
  • A Secrets tab with API keys that the code reads while it is running
  • A login screen with real accounts behind it, not a hard-coded password in the JavaScript
What is in the projectWhat it isWhere it can live
Only .html, .css, .js and imagesStaticAny static host
A React, Vue or Vite project with a build commandStatic after you build itAny static host
An Express, Flask or FastAPI server fileAn appA server platform
Secrets read at runtime, or a databaseAn appA server platform, plus somewhere for the data
A form that saves what people submitAn appA server platform, or a form service

There is a shortcut worth knowing. Replit's own documentation says Static Deployments are not compatible with apps the Agent built, because the Agent builds full-stack apps that need a backend. So if you described a product to the Agent and it handed you logins and a dashboard, you already have your answer, and it is not the easy one. Replit deployment types

If you are unsure, there is a blunt test. Open the browser console on your live page, click around, and watch the network tab. If the page fetches an address starting with /api/, something on a server is answering it. That something does not come along in a zip file.

When The Replit Hosting Actually Stops

It mostly does not stop on its own. Four specific things end it, and only one of them catches people out.

  1. The preview URL was never hosting. The replit.dev address you get when you press Run is a temporary URL tied to your workspace session. Close the workspace and it stops answering. Publishing is a separate step, and plenty of people never took it.
  2. Free always-on hosting ended on 1 January 2024. Replit removed Always On, repl.co addresses moved to replit.dev, and publishing became the only way to keep an app up. If a tutorial you are following does not match what you see, that is usually why.
  3. A budget cap suspends a published app. Autoscale publishing lets you set a spending limit. Hit it and the app is suspended until you raise the cap and start it again. That is the surprise one, because it looks like an outage.
  4. Dropping to the free plan limits how many live projects you keep. The free Starter plan publishes one live project. Two published apps and a cancelled subscription do not both survive.

Now the fair part, because the money is not where people assume. Static publishing on Replit costs nothing to host, with data transfer billed at $0.05 per GB. The bills come from the always-on tiers: a Reserved VM starts at $15 a month for a shared half-core, and Autoscale carries a $2 monthly base fee plus usage.

So the Replit hosting you are paying for is almost always the server, not the pages. Which is exactly why the static half of this problem is so easy to solve elsewhere, and the server half is not.

How To Move A Static Project Off Replit

How To Move A Static Project Off Replit - OxyPages

Six steps. If your project is genuinely static, the whole thing takes about ten minutes, most of which is the download.

  1. Build it first, if it needs building. Open the Shell and run your build command, usually npm run build. You want the output folder it creates, normally dist or build. That folder is your website. The source next to it is not.
  2. Download the project. Three-dot menu at the top of the file tree, then "Download as zip". If the project is too large and the download fails, run zip -r project.zip . in the Shell and download project.zip from the file tree instead.
  3. Unzip it and find index.html. Whatever folder that file sits in, at the top level, is the folder you are going to upload.
  4. Delete what does not ship. node_modules is the big one and it is often 90% of the zip. Also drop .git, .replit, .config, and the source files if you built the project in step one.
  5. Upload the whole folder, not the single file. This is the step that causes almost every broken-image complaint. Your HTML asks for assets/logo.png and style.css, and those have to arrive with it, in the same shape.
  6. Open the new URL on your phone. Not your laptop, which still has the local copy cached and will happily lie to you.

That is it. Your files are live at a real HTTPS address and Replit is no longer involved. The same folder-upload routine in more detail covers the general case if any step feels vague.

Two things break at this point, and both are quick to spot.

Absolute paths. If a tag points at /assets/logo.png with a leading slash, it will still work at the root of a new domain but not inside a subfolder. Relative paths are safer for a moved site.

Calls to /api/. If the page starts throwing errors that were not there before, open the console. A failed request to your own /api/ address means you did not have a static site after all. Go back to the section above.

If It Has A Backend, A Static Host Cannot Run It

I want to be plain about this, because it is the part vendors gloss over.

A static host stores files and hands them to browsers. It does not run Node, Python, PHP or anything else on a server. OxyPages does not run them either. If your project has an Express server, a database, user accounts or secrets it reads at runtime, we are the wrong tool and so is every other static host, and no plan upgrade changes that.

Here is where that kind of project actually goes.

PlatformFitsWhat moving there involves
RenderNode, Python, Docker, with managed Postgres alongsideConnect a repo, set a start command, re-enter your secrets
RailwayThe same shapes, quickest to stand up from scratchDeploy from a repo or the CLI, add a database service
Fly.ioApps you want running close to users, Docker-firstWrite a small config file, then one CLI command
A VPSFull control at a fixed monthly priceYou manage the operating system, web server and certificates

Two warnings before you start.

Your data does not come along in the zip. The download has your code. If the app stores anything people typed into it, export that separately, and do it before you cancel anything.

Your secrets do not either. Replit's Secrets are encrypted environment variables, deliberately kept out of your code rather than sitting in a file. Write down what the app expects and set them again on the new platform, or it will boot and immediately fall over.

One honest middle path: some projects are an app only because of one small thing, like a contact form or a single API key. Splitting those out and hosting the rest statically is often less work than moving the whole application, and a hosted form service handles the one dynamic piece.

What To Do Next

In order, and you can start now.

  1. Open the project and look for a server file, a database, or a Secrets tab with anything in it.
  2. If none of those exist, run the build if there is one, then download the zip.
  3. Strip node_modules and the source files, keep the folder with index.html at the top.
  4. Drag that folder onto a static host and check the result on your phone.
  5. If a server file does exist, stop, export your data, and start a Render or Railway account instead.

Drop the folder into OxyPages if you want the static half done in a minute with a free subdomain and HTTPS already on. If the project turned out to be an application, use Render and come back for the marketing pages later, which is a genuinely common split.

Everything on this page applies to output from any of the AI builders, not just this one. Hosting a site an AI generated for you covers the wider pattern, and getting a Claude HTML page online covers the simplest version of it.

FAQ

Can You Use Replit To Build A Website?

Yes, and it is one of the better places to do it, especially if you cannot code. It will happily produce a plain HTML page, a React site, or a full application with logins and a database. The catch is that those three outcomes have very different hosting needs, and the tool does not make that obvious while you are building.

How Do I Download My Whole Replit Project?

Use the three-dot menu at the top of the file tree and choose "Download as zip". If that fails because the project is too big, open the Shell, run zip -r project.zip ., and download the resulting file from the file tree. You can also push the project to GitHub and clone it from there.

My Images Broke After I Uploaded It. Why?

Almost always because you uploaded a single file instead of the folder around it. The page is still asking for assets/logo.png and nothing is there. Re-upload the whole folder with its structure intact. If it persists, check for paths pointing at a local drive rather than a relative path.

Does A Published App Stay Online If I Cancel My Plan?

Not reliably. The free Starter plan keeps one published project live, so a single static site can survive a downgrade, but a second one and any always-on server will not. Export your code and your data before the billing date, not after. Moving a static folder off the Replit hosting takes ten minutes; recovering something that has already been taken down takes considerably longer.

Try It Now

Still Here? Drop It In.

The whole pitch fits in one sentence: your HTML, on a link, in seconds.

Drag and drop your HTML file(s), folders, or ZIP file

or ·

No account needed. Your unclaimed website stays live for 30 minutes on a free subdomain. Claim it to your account to keep it permanently.

  • No Account Needed
  • Free SSL
  • 30-Minute Unclaimed Link, Claim To Keep It