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.
Limited-time offerPro & Max plans — 20% offSave 20% on monthly and yearly billing.
Save 20% on monthly and yearly billing.
Replit static hosting · Updated October 9, 2026
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.
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.
A hand-written page with relative CSS, JavaScript, and images can be zipped and uploaded. There may be no build step.
src/ is source. dist/ or another build folder is what the browser loads after compilation. Uploading src/ leaves JSX, TypeScript, or bundler imports unresolved.
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 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.
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.
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.
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.
Upload the static files only. Do not include .env, secrets, database dumps, .cache, private keys, or server-only code.
Upload the archive to HTMLShare and send the link. Reviewers can open the frontend without a Replit account or a running Repl.
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.
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.
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.
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.
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.
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.
Rebuild and upload the generated output. Keep the asset folder beside the entry file.
Relative paths must match the hosted folder. A client-side route opened directly can 404 when the host only has the built files.
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
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.
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.
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/.
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.
Upload dist/ or the other folder your build writes, unless the project is already plain HTML with no build step. src/ is source.
Send the HTMLShare URL. The client can open it in a browser without a Replit account or a local environment.
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.
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.
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.
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.
Upload that frontend and send one review link. Keep the server, secrets, and database on a runtime that can actually run them.