Replit hosting: deploy your Replit app
Built an app with Replit? Send its code to GitHub and Cloudzyro puts every change online, or upload a zip.
Last updated
How to deploy your Replit app
Create your free Cloudzyro account, then bring your Replit project over one of two ways.
Through GitHub (updates go live by themselves)
- 1
In Replit, open Tools, then Git. Connect your GitHub account and a repository, then commit and push (or turn on auto-sync).
- 2
On the Cloudzyro console's Home page, under Import from a repository, choose GitHub, then pick that repository and its branch.
Read the Git guide - 3
Every change Replit pushes to the repository goes live by itself.
Download a zip
- 1
In Replit, open the menu at the top of the file tree and choose Download as zip. Delete the .cache folder from the zip before you upload it: it can hold copies of your secrets.
- 2
In the Cloudzyro console, create a site and upload the zip. We leave out node_modules and build it for you.
Read the upload guide
On this page
Why host your Replit app on Cloudzyro
Replit is where you build. Cloudzyro is where your app lives once it's ready, with your code in your own repository:
- Every version kept. Each push or upload becomes a version you can restore in one click (5 on Launch, 10 on Boost) or download. See Versions.
- Never asleep. Sites never sleep, on the free plan too.
- Free for business. Launch is free, and you can use it for a business.
- Your own domain, free. Custom domains cost nothing extra on any plan.
- No per-seat charges. Invite your team free.
- Slowed, never cut off. A site over its monthly traffic is slowed for the rest of the month, never taken offline or charged extra.
What we build from your Replit project
Cloudzyro hosts static sites and Node.js apps, so your Repl needs an index.html or a package.json at the top. Projects in other languages, such as Python, won't deploy. We look at the top of your project to work out what it is:
- An
index.htmlgoes online as it is. See HTML sites. - A
package.jsonwith a build script, like a Vite or React app, is built and the files it makes are served. - A Node.js app with a
startscript, including Next.js, runs on Node 24, or the version inengines.nodeor.nvmrc.
With a zip, upload the folder that holds index.html or package.json, not the folder above it. Launch takes uploads up to 100 MB and 20,000 files; Boost up to 1 GB and 50,000. See Upload files.
Listen on PORT and 0.0.0.0
A Node app on Cloudzyro must listen on the port in the PORT environment variable (3000), not a fixed one like 5000, and on all network addresses, not just localhost. If it doesn't, the deploy fails with “Your site started but didn't answer.”
const port = process.env.PORT || 3000;
app.listen(port, '0.0.0.0');Your home page (/) must also answer within 5 seconds without an error. A normal page or a redirect, for example to /login, is fine.
How updates go live through GitHub
Once the repository is connected to your site, every push to its branch becomes a new version: we build it, check it starts, and switch over. Your current version stays online until the new one is ready, so a broken change never replaces a working site. Commit and push from Replit's Git tool, or turn on auto-sync, and each push goes live by itself.
To hold changes back for a while, open the site's Settings and select Pause automatic deploys. GitLab, Bitbucket and any Git address work too. See Deploy from Git.
Replit Secrets and environment variables
Add the values from Replit's Secrets on your site's Environment variables tab, rather than relying on them coming over with your code. You can paste several at once as .env lines, and tick Sensitive to make a value write-only for good.
If you download a zip, delete its .cache folder before uploading: it can hold copies of your secrets. We leave out .env files and offer to add their values for you.
Sites have no permanent disk, so an app that saves data in its own files (SQLite, an uploads folder) loses it on the next deploy. Move that data to a database, below.
See Set environment variables.
Connect a database
Sites on Cloudzyro have no permanent disk: files a site writes while it runs are cleared with each new version. So if your site keeps anything, like sign-ups, orders or bookings, keep it in a database such as Supabase or Neon.
On your site's Database tab, select Connect Supabase, sign in to Supabase and choose the project. We fill in the settings your code reads, test them and deploy. Or paste a connection string from Neon or any other provider. See Connect Supabase or Connect a database.
Replit custom domain
Every site gets a free address at <name>.cloudzyro.app, and you can add your own domain free on every plan. Add it once in the console:
- Open your site's Domains tab and add the address visitors will use, such as
www.example.com. - At your DNS provider, add a CNAME record for
wwwpointing todomains.cloudzyro.app. - For the bare domain (
example.com), add an A record pointing to173.234.137.167. It sends visitors towwwover HTTPS. - Wait for the domain to show Live. Certificates are automatic.
If your DNS is at Cloudflare, set the record to DNS only (the gray cloud). Point a domain at your site walks through it, and Connect a custom domain covers the details.
If a deploy fails
Your live site keeps running the previous version, and the deploy page says what went wrong in plain words, with the last lines of the build log and a fix. Select Ask your AI to fix it to copy a ready-made message you can paste into any AI tool. The usual causes:
- Wrong port. The app listens on a fixed port or only on
localhost. Useprocess.env.PORTand0.0.0.0, as above. - Missing files. We need an
index.htmlor apackage.jsonat the top of what you sent. A zip that holds one folder with everything inside is a common cause. - Crashed on start. Often a missing environment variable or a database it can't reach. Add it on the Environment variables tab, then select Deploy now.
Fix a failed deploy explains every reason. Still stuck? Use Get help in the console or email support@cloudzyro.com.
What it costs
Every site starts on Launch, which is free and allows business use, with 100 GB of traffic a month. Boost is $20 a month per site plus tax, with more memory and CPU, priority builds, 10 versions to restore and 1 TB of traffic. Team members are free on every plan. See pricing.
Keep reading
- Hosting Node.js apps and Express apps
- Connect Supabase and point a domain at your site
- Netlify alternatives and Vercel alternatives
- Sites & Apps: everything a site gets
Using another tool?
- ClaudeClaude and Claude Code
- ChatGPTBusiness, Enterprise and Edu
- CursorCursor's agent
- CodexCodex app, CLI and IDE
- Gemini CLIGoogle's coding agent
- WindsurfThe Windsurf editor and Cascade
- LovableThrough GitHub or a zip
- BoltThrough GitHub or a zip
- v0Through GitHub or a zip
- Any other AI toolVS Code and any tool with MCP
Questions about Replit and Cloudzyro
My Replit app runs on a fixed port. Does that matter?
Where do my Replit Secrets go?
Does my Python Repl work?
Does it cost anything?
Do changes I make in Replit go live by themselves?
Where do my keys go, like Supabase's?
Does my site sleep when it's quiet?
Put your Replit app online free
Free to start, free for business, with every version kept.