Limited-time offerPro & Max plans — 20% off

Save 20% on monthly and yearly billing.

View plans

Replit static hosting · Updated October 9, 2026

Turn a Replit Static Build Into a Shareable URL

Built a frontend in Replit and need to know which files actually go online? Identify the static output, upload that, and send a browser link. This page is for the frontend, not for hosting a whole Replit server.

Is the Replit project actually static?

Replit's Static deployment serves HTML, CSS, and JavaScript and has no backend. The same docs say that deployment type is not compatible with Agent apps, because Agent builds full-stack apps. Sort the project before you upload it.

index.html plus assets

A hand-written page with relative CSS, JavaScript, and images can be zipped and uploaded. There may be no build step.

src versus dist

src/ is source. dist/ or another build folder is what the browser loads after compilation. Uploading src/ leaves JSX, TypeScript, or bundler imports unresolved.

Agent or server project

Replit documents that Static deployments are not for Agent apps, because those apps are full-stack and need a backend. HTMLShare can still show a frontend you have already separated. It will not run the server.

Download the project, then find the output

Download as zip is a snapshot of the project files. It is not automatically the folder a browser should open, and it is not a reason to publish every file in the Repl.

01

Check whether the site is static

Plain HTML, CSS, and JavaScript can be published as files. A Vite or React frontend needs a build. A Node, Python, or Agent app with a server is not a static site.

02

Download the project as a ZIP

Replit's help docs say to open the three-dot menu at the top of the file tree and choose Download as zip. If that fails, run zip -r project.zip . in the Shell and download that archive.

03

Find the browser-ready output

Look for index.html. For a framework app, run the build script and use the folder it writes, often dist/, build/, or public/. The names come from that project's config, not from a universal Replit rule.

04

Leave the server behind

Upload the static files only. Do not include .env, secrets, database dumps, .cache, private keys, or server-only code.

05

Share the preview URL

Upload the archive to HTMLShare and send the link. Reviewers can open the frontend without a Replit account or a running Repl.

A frontend build, when the project has one

npm install
npm run build

# Upload the folder the build writes, often dist/

Use the script names in package.json. If the app has no build script and already contains index.html, zip that page and its assets instead.

Host the frontend without keeping a server running

A static preview does not need the Repl to stay awake. That is the right trade for a landing page, a browser game, or a client-only demo. It is the wrong trade for Express, Flask, FastAPI, websockets, background jobs, or a database.

  • Publish the built frontend when the screen works with no server.
  • Point browser fetch calls at an API you host on Autoscale, a VM, or another runtime.
  • Set that API to allow the preview origin, and do not put private keys in the frontend.

Replit publish, HTMLShare, or a server deployment?

Replit preview or publish

Keep the Repl running, including its server, secrets, and deployment type.

Boundary: Reviewers stay on Replit's workflow. Static publishing there is for sites with no backend.

HTMLShare preview link

Hand off the static frontend, or the built client, as a browser URL.

Boundary: It serves uploaded files. It does not boot a Repl, run Agent backends, or read Replit secrets.

Autoscale or Reserved VM

Run the API, websockets, jobs, or database logic that the frontend calls.

Boundary: Choose this when the project is more than HTML, CSS, and JavaScript.

Common problems

Blank page

The archive is source, the entry file is missing, or a script expects a server. Open the browser console and confirm index.html is present.

Uploaded src instead of dist

Rebuild and upload the generated output. Keep the asset folder beside the entry file.

Assets or client routes 404

Relative paths must match the hosted folder. A client-side route opened directly can 404 when the host only has the built files.

Localhost or missing environment values

A frontend that calls http://localhost, or that was built with empty public variables, will not reach the API you used inside Replit. Point it at a deployed API and rebuild.

FAQ

Common questions

Can I host a Replit static site somewhere else?

Yes, when the site is browser-ready HTML, CSS, and JavaScript, or a frontend you have already built. Download the ZIP, upload those files, and share the preview URL.

How do I host a Replit export?

Use Download as zip from the file tree menu, identify the static entry, build first if the project is a framework, and upload the output rather than the whole Repl.

Which Replit files should I upload?

Upload index.html and the assets it uses. For a built app, upload the output directory named by that project's build, commonly dist/, build/, or public/.

Can I host only the frontend from Replit?

Yes. Separate the browser files from the server. The frontend can call an API you host elsewhere if CORS, the API URL, and authentication are configured for that public origin.

Do I upload src or dist from Replit?

Upload dist/ or the other folder your build writes, unless the project is already plain HTML with no build step. src/ is source.

How do I share a Replit build with a client?

Send the HTMLShare URL. The client can open it in a browser without a Replit account or a local environment.

Does a static Replit site need a running server?

No, if every interaction is in the uploaded files. Replit's own Static deployment also serves files with no backend. A server is required for APIs, websockets, jobs, and databases.

Can I publish a Replit Agent app as a static site?

Replit says Static deployments are not compatible with Agent apps because those apps need a backend. You can still preview a frontend you extract. The Agent server itself needs Autoscale, a Reserved VM, or another runtime.

Why is the page blank after upload?

Check for a missing index.html, source uploaded instead of the build, broken asset paths, a client route opened directly, or a request to localhost or a stopped backend.

Will my Replit secrets be in the ZIP?

Replit keeps Secrets separate from a project copy, but files you created can still contain keys. Open the archive and remove .env files, tokens, and database dumps before uploading.

Have the browser-ready Replit files?

Upload that frontend and send one review link. Keep the server, secrets, and database on a runtime that can actually run them.

Replit Static Hosting — Publish a Frontend Build | HTMLShare