REPLIT HOSTING

Replit hosting: move the static output off the platform

Replit is a workspace with its own deployments attached. If what you built is a static front end, you do not need the platform to keep serving it. Download the project as a zip, build it, and the output lives at your own address instead.

Free plan, free SSL, no credit card.

.droply.id
zip
the documented way out of a Replit workspace
96
file types accepted on the way in
1
free site with HTTPS, no card
25
publishes a day on the free plan

What you are holding

What Replit outputs

Whatever you built in it. Replit is a development workspace rather than a generator with one house stack, so the answer depends on your project: a single HTML page, a Vite front end, a Node server, or all three in one folder.

That makes the first step a reading exercise rather than a build. Open the file tree and look for a package.json. If there is none and there is an index.html at the root, you are holding a finished static site and can upload it as it is. If there is one, read the scripts block: a build script means there is a build to run and an output folder to find. If there is a server file that listens on a port, that part of the project is not static and no file host will run it.

The reason to move a static front end off the platform at all is what a workspace is for. It is an environment that keeps a session alive so you can work; a host is a thing that answers requests for the next three years without you thinking about it. Once the front end is built, it needs the second thing, and the second thing is cheaper and simpler than the first.

The fork

Which of the two paths you are on

Look for a package.json. That is the whole test, and it takes a few seconds.

No build

Already static, no build

An index.html at the root with its CSS, JavaScript and images alongside it. Nothing to compile.

  • Zip the contents of the folder, with index.html at the top level of the archive.
  • Or upload the folder directly. Both are accepted.
  • A single self-contained .html page can be dropped on its own with nothing around it.
  • A single .jsx or .tsx works too, transformed in the visitor browser with no build.
One build

A project, one build first

There is a package.json with a build script. Install, build, and upload the folder it writes.

  • Run npm install, then npm run build.
  • Vite writes to dist; other frameworks differ. Check the guide for yours.
  • Upload that folder, not the project root and not node_modules.
  • A server file that listens on a port does not run here. Only the built front end does.

Step by step

Getting the code out of Replit

Replit documents a direct download, and a fallback for when a large project times out. Both are worth knowing before you need the second one.

  1. Open the project

    Open the workspace containing the files you want, not a fork or a template preview.

  2. Download as zip

    Replit documents selecting the three-dot menu at the top of the file tree and choosing Download as zip. Large projects can take a moment.

  3. If the download fails, zip it in the Shell

    Replit's documented fallback is to open a Shell, run zip -r project.zip ., then download project.zip from the file tree.

  4. Unzip and read the project

    No package.json and an index.html at the root means it is already static. A build script means one build to run first.

  5. Build if you need to, then upload

    Run the build, then drop the output folder here. Pick a name and it is live over HTTPS, at an address that does not depend on a workspace staying awake.

Download steps quoted from Replit's own documentation at docs.replit.com/help/projects-and-files, read 8 September 2026, which states: select the three-dot menu at the top of the file tree and choose Download as zip, and that if the download fails you can open a Shell and run zip -r project.zip . then download project.zip from the file tree. Interfaces can change.

Who it is for

The people who reach for this

  • Developers

    A front end that no longer needs a workspace to stay awake, on an address that costs nothing to keep.

  • Educators

    A class project moved off a shared workspace and onto a link that keeps working after the term ends.

  • Students

    A portfolio piece at a permanent address you can put on an application, rather than a workspace URL.

  • Anyone shipping a side project

    The building is done. What is left is somewhere to put it, and that part should be dull.

In detail

What you actually get

A ZIP is a first-class upload

Replit hands you a zip, and a zip is exactly what this expects. There is no unpacking step for you to get wrong on our side.

  • The archive is extracted in a sandbox, and its real bytes are checked rather than its file names.
  • index.html has to be at the top level of the archive. The three ways that goes wrong.
  • Up to 25 MB per upload on the free plan, 25 MB across the account.
  • Nothing inside the archive is executed on our infrastructure.

An address that does not depend on a session

The reason to move a finished front end at all: a host answers requests whether or not anyone is logged in anywhere.

  • HTTPS with a real certificate, issued and renewed for you.
  • The address stays the same across every republish.
  • Custom domains from Pro, $15 a month.
  • Expiring links from Starter, when a link is meant to be temporary on purpose.

Republish without re-sending the link

You will go back and change it. The address is fixed from the first publish, so iterating does not cost a new link each time.

  • Up to 25 publishes a day on the free plan.
  • From Pro, going back to the version that worked is one click.
  • The swap is atomic, so a visitor never sees a half-published page.

Troubleshooting

What breaks, and why

A zip of a whole workspace is a different animal from a zip of a build, and the two failures below both come from that.

  • The upload is enormous, or times out

    Why A workspace zip contains node_modules, a .git history and every file you ever created in it. That is frequently hundreds of megabytes of things a visitor will never request.

    Fix Upload the build output, not the workspace. If the project is already static, zip only the files the site needs: the HTML, the CSS, the JavaScript and the images.

  • The app worked in Replit and does nothing here

    Why Replit was running a server for it. If the project has a file that listens on a port, that is the half that made it work, and a static host runs no code at all.

    Fix Publish the built front end here and host the server somewhere that executes code. If the project is mostly server, this is the wrong kind of host and it is better to know now.

  • Every route except the home page returns a 404

    Why The app routes in the browser, so /about exists only once JavaScript has run. A static host asked for /about looks for a file at that path, does not find one, and answers 404 before your code loads.

    Fix Turn on the Single-page app switch in the site settings. Unknown paths are then served the root index.html and the client router takes over. Free on every plan, applied without a redeploy, and off by default because a multi-page site wants real 404s.

  • The API keys the tool wrote into the code are now public

    Why AI tools fill in the value they can see, and a key in front-end code is readable by anyone who opens the page. No host can fix that: a published page is public by definition.

    Fix The deploy-time security check names the key it found. Rotate it, then move the call behind something that can hold a secret. Every plan, free included, and it never blocks the publish.

No card required

What the free plan includes

Moving a finished front end off a workspace costs nothing here, and the free plan is a plan rather than a trial with a deadline.

  • 1 live site on a real free plan, not a trial of a paid one, with HTTPS and no card to start.
  • Up to 25 MB per upload and 25 MB of storage across the account.
  • 5,000 visits and 5 GB of traffic a month.
  • Up to 25 publishes a day, which is the number that matters when you are regenerating.
  • The Single-page app switch, so a client-routed build works without paying for anything.
  • The deploy-time security check, which warns about a stray .env file, a .git folder, a private key or an API key left in your JavaScript.
  • A small Droply badge in the corner of the page. Removing it starts on Starter.
  • Free sites are served noindex, so search engines do not list them. Search visibility starts on Starter.

See every plan and its limits

Droply vs Static.app

How this compares with the other host built for AI output

Static.app has a Replit page of its own. These rows come from its published pricing and documentation.

  Droply Static.app
A workspace ZIP Accepted, extracted in a sandbox, with the real bytes checked rather than the file names. ZIP upload is the documented path.
Upload a folder instead Yes, no archive required. ZIP is the documented path.
Client-side routing One free Single-page app switch, applied live with no redeploy. Not documented as a per-site setting.
Expiring links From Starter: six hours, a week, or a date you pick. Not listed on any of its plans.
Loose .html file accepted Yes, dropped on its own with nothing around it. No. Its Claude page states a loose .html file is not accepted and must be zipped.
Single .jsx or .tsx without a build Yes. It is transformed in the visitor browser at the published address. No. Its Claude page says React-based artifacts need a self-contained HTML version first.
Free plan 1 site, 25 MB storage, no card, and a plan rather than a trial. A 7-day trial with no credit card, then paid. 1 site and 50 MB during it.
Security check on every publish Every plan, free included: leaked keys, a stray .env, a committed .git folder. Not offered.

Static.app figures checked 8 September 2026 on its own pricing page (free tier: 1 site, 50 MB, a 7-day trial with no credit card; Starter $5 a month or $60 a year for 2 sites and 500 MB with a custom domain; Medium $10; Large $15) and on its Claude hosting page, which states that a loose .html file is not accepted and must be zipped, that React-based artifacts need an extra step because you have to ask the model for a self-contained HTML version, and that Import from URL takes claude.ai and claude.site links. Product plans can change.

When Droply is the wrong choice

Plenty of Replit projects are servers wearing a front end, and moving one here would publish the half that does not do the work.

  • The project listens on a port, holds a database or handles logins. None of that runs on a static host.
  • You want the workspace and the published site to stay in sync automatically. There is no Git integration here: each publish is an upload you make.
  • The generated app has a database, a login screen or server actions. Those need a runtime; only the static half of it can be published here.
  • You want a build to run here, on upload or on every push. There is no build step and no Git integration: you build locally and bring the output.
  • You are running WordPress or another PHP application. A static export of it can be hosted here, but the application itself cannot.

Frequently asked questions

How do I download a project from Replit?
Replit documents selecting the three-dot menu at the top of the file tree and choosing Download as zip. If that fails on a large project, its documented fallback is to open a Shell, run zip -r project.zip . and download the archive from the file tree.
Can I host a Replit project somewhere else?
The static part, yes. Download the project, run its build if it has one, and upload the output folder. Anything that listens on a port stays behind, because a static host runs no code.
Do I upload the whole zip Replit gave me?
Usually not. That archive contains node_modules and the git history, which no visitor will ever request. Upload the build output, or just the files the site actually needs.
How do I know whether my project needs a build?
Look for a package.json. No package.json and an index.html at the root means it is already static. A build script inside it means one build to run, and the deploy guides name the output folder for each framework.
Why does every route except the home page 404?
Because the routing happens in the browser and a static host answers with a file or a 404 first. Turn on the Single-page app switch in the site settings; unknown paths are then served the root index.html. It is free and applies without a redeploy.
Does the published site stay up if I stop using Replit?
Yes. Once the files are here they are served independently of anything on the original platform. That is the reason to move a finished front end at all.
What happens to the secrets in my workspace?
They should not travel with the upload. The deploy-time security check reads what you published and names a .env, a private key or an API key if it finds one, on every plan including free.
Can I put the site on my own domain?
Yes, from Pro at $15 a month, with the certificate issued and renewed for you. The free plan serves the site on a subdomain over HTTPS.

Keep exploring