Deploy a Replit project to a live URL using two paths: free static hosting for HTML sites, or Replit Core for apps with a server. Here's exactly how each one works.
Which deployment method do you need?
Before you deploy, figure out what you built.
If your project is HTML, CSS, and JavaScript with no backend, you can use Replit's built-in static deployment. It's free and takes about 30 seconds. No credit card.
If your project runs a server (Node.js, Python, Flask, Express, Django), Replit's free tier won't keep it running after you close the editor. You'll need Replit Core ($20/mo billed annually) to keep it live.
Not sure which you have? Open the file tree in your Repl. If the main file is index.html and there's no server.js, app.py, or similar, you're working with a static site.
Method 1: Replit Static Deployment (free for HTML sites)
What you need: A Replit account (free) and an HTML project that runs without a server.
Step 1: Open your Repl
Go to replit.com, sign in, and open the project you want to deploy.
Step 2: Click Deploy in the top navigation
Replit shows you the available deployment types. Select Static.
Step 3: Set your entry point and publish
Replit usually detects index.html automatically. Confirm the entry point, optionally add a custom domain, and click Deploy. Replit publishes the files and gives you a URL at yoursite.yourname.repl.co. The whole process takes under a minute.
Result: A live URL your static site loads from, free, no expiry as long as your Replit account is active.
The catch: The site lives on Replit's infrastructure. Moving it elsewhere later means exporting the files and re-deploying somewhere else.
Method 2: HTMLPub (for HTML you want off Replit)
If you built HTML in Replit and want it live at a shorter URL that isn't tied to your Replit account, or if you want to keep the page after you stop using Replit:
What you need: Your HTML code and a free HTMLPub account.
Step 1: Copy your HTML from Replit
Open index.html in the Replit editor. Select all (Cmd+A on Mac, Ctrl+A on Windows) and copy.
Step 2: Paste into HTMLPub
Go to htmlpub.com. Create a free account. Click Paste HTML, paste your code, and hit Publish.
Result: A live URL at yourpage.htmlpub.io. Free tier gives you 5 pages with a 7-day expiry. Starter ($10/mo) unlocks 50 pages with no expiry and a custom domain.
This path is worth considering if you generated the HTML with an AI tool and want a portable URL, or if you're building a quick prototype that doesn't need its own hosting account.
Method 3: Replit Core (for apps with a server)
If your project has a backend that needs to stay running, you need a paid Replit plan.
What you need: Replit Core at $20/mo billed annually. Check replit.com/pricing for current rates before committing.
Step 1: Upgrade to Replit Core
Core includes publishing one app, Reserved VM access, and Dynamic Server deployments.
Step 2: Click Deploy and choose your deployment type
Replit offers two options for server apps. Reserved VM gives you dedicated resources and 99.9% uptime. Dynamic Servers scale automatically with traffic. For most projects, start with Dynamic Servers.
Step 3: Configure and deploy
Replit usually detects your run command automatically. Confirm it, set your environment variables, and deploy. You'll get a stable URL that stays live after you close the editor.
Result: A running app at a persistent URL. Your server stays on. Traffic can scale with demand.
Common issues
"My site looks broken after deployment"
Static sites with absolute server paths break outside the editor. Check that your CSS, image, and JavaScript references use paths relative to the HTML file, not server-root paths.
"My app goes to sleep after a few minutes"
This is the behavior of the Replit editor preview, not deployed apps. After deploying with Replit Core, your app stays running. The sleep behavior only applies to the editor environment.
"I used Replit Agent to build this and I'm not sure what kind of project it is"
Open the file tree. If there's an index.html as the main entry point and no server file alongside it, the project is static and Method 1 or 2 will work. If you see a main.py or server.js, go with Method 3.
What's next
If you built the same project in Cursor, the static HTML path works the same way. See how to deploy a Cursor project for the Cursor-specific export steps.
For a side-by-side look at hosting options for static HTML beyond Replit and HTMLPub, how to host a website for free compares five platforms with real tradeoffs.
If you started with Lovable rather than Replit, how to deploy a Lovable app covers the workflow for that tool.