How to Deploy React or Next.js Without Git
Deploy a React or Next.js site to a live URL in seconds — no Git, no CI/CD, no Vercel account. Just zip your build and share a permanent link with your client.
The Git Requirement Nobody Asked For
You’ve finished the React prototype. The client wants to see it live. And now you’re staring at a Vercel setup screen asking you to connect a GitHub repository, configure environment variables, and set up a deployment pipeline — for what is essentially a client preview.
This is the hidden tax of modern frontend tooling. Deploying a React or Next.js site without Git shouldn’t require DevOps knowledge. If you’re a freelancer, a designer who codes, or an agency developer who just needs to show a client a working build, there’s a much simpler path.
Why Vercel and Netlify Are Overkill for Client Previews
Vercel and Netlify are excellent production deployment tools. But they’re built around a Git-centric workflow that assumes you want continuous deployment, branch previews, and environment management. For client previews, that’s like using a freight truck to deliver a pizza.
The Git Overhead Problem
Every Vercel deployment requires a connected repository. That means:
- Creating a GitHub/GitLab repo for every client project
- Managing access permissions
- Dealing with new preview URLs on every push (clients get confused which link is current)
- Explaining to non-technical clients why the URL changed again
The “New URL Every Deploy” Problem
Vercel generates a new preview URL on every deployment. So when you push v2, your client has a different link than v1. They now have two tabs open and no idea which one is the latest. This is the exact version confusion problem you were trying to avoid.
The Account Requirement Problem
Some platforms require clients to have an account to view password-protected previews. That’s friction you don’t need.
The Better Way: ZIP Upload to a Permanent Link
The simplest workflow for deploying React or Next.js without Git:
- Build your project — run your normal build command
- Zip the output folder — one folder, one zip file
- Upload to Clowd — drag and drop
- Share the permanent link — send it once, update forever
The link never changes. When you have a new build, upload again to the same slot. Your client’s bookmark still works. They see the latest version automatically.
Step-by-Step: Deploy React Without Git
Step 1: Build your React app
npm run build
This generates a build/ folder (Create React App) or dist/ folder (Vite) containing your static site.
Step 2: Zip the output folder
On Mac: right-click the build folder → Compress On Windows: right-click → Send to → Compressed folder On Linux: zip -r build.zip build/
Step 3: Upload to Clowd
- Go to clowd.host and create a new delivery
- Select “Static Site” as the type
- Upload your zip file
- Your site is live instantly on a clean URL
Step 4: Share the permanent link
Send the URL to your client. That’s it. When you have updates, upload a new zip to the same delivery — the URL stays identical.
Step-by-Step: Deploy Next.js Without Vercel
Next.js requires one extra configuration step to produce a static export.
Step 1: Configure static export
In your next.config.js:
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export',
}
module.exports = nextConfig
Step 2: Build
npm run build
This generates an out/ folder containing your fully static site.
Step 3: Zip and upload
Zip the out/ folder and upload to Clowd exactly as described above.
Note: Next.js static export doesn’t support server-side features like API routes, server components, or middleware. It works perfectly for marketing sites, portfolios, dashboards, and any app that can run entirely in the browser.
Framework Reference: Which Folder to Zip
| Framework | Build command | Output folder |
|---|---|---|
| Create React App | npm run build | build/ |
| Vite (React/Vue/Svelte) | npm run build | dist/ |
| Next.js (static export) | npm run build | out/ |
| Astro | npm run build | dist/ |
| SvelteKit (static) | npm run build | build/ |
| Nuxt (static) | npm run generate | dist/ |
Practical Example: The Agency Developer’s Workflow
Marcus is a developer at a small agency. He builds React prototypes for clients before handing off to production teams.
Before: He’d push to GitHub, connect Vercel, configure the project, wait for deployment, then send the client a link — only to have Vercel generate a new URL on the next push. The client would email asking “which link is the right one?”
After: Marcus runs npm run build, zips the dist folder, uploads to Clowd. The client gets one permanent URL. When Marcus pushes v2, he uploads
the new zip to the same Clowd delivery. The client’s link still works — they just see the updated site.
Total time from build to live link: under 60 seconds.
Best Practices
- Keep your build folder clean — don’t zip the entire project, only the output folder
- Test locally first — open
index.htmlin a browser before uploading to catch routing issues - Use a custom domain — Clowd supports custom domains on all plans, including free. Map
preview.youragency.comto your delivery for a professional touch - Name your deliveries clearly — “ClientName — Project — Preview” so you can manage multiple clients from one dashboard
- Set an expiry date for sensitive previews — if the client hasn’t approved in 30 days, the link can auto-expire
Question-Based Insights
Why do developers still use Git for client previews when they don’t need to?
Habit, mostly. The modern frontend ecosystem is so Git-centric that developers default to it even when the use case doesn’t require it. For production deployments with CI/CD, Git makes sense. For a client preview that needs to be live in 60 seconds, it’s unnecessary overhead.
What’s the difference between a static site and a server-rendered app?
A static site is pre-built HTML, CSS, and JavaScript that runs entirely in the browser. It can be hosted anywhere — including a simple file server. A server-rendered app requires a Node.js server to generate pages on request. React, Next.js (with static export), Svelte, Astro, and Vue can all produce static output that deploys without a server.
How Clowd Helps
- ZIP upload → live in seconds — no CLI, no config files, no Git required
- Permanent URL — one link per project, updates in place when you upload a new build
- Custom domains — map your own domain to any delivery, including on the free plan
- Version history — every upload is saved, rollback to any previous build with one click
- Client comments — clients leave feedback directly on the live site, tied to each version
Try Clowd for free
Share files with permanent links. Update anytime, same URL.
Sign up freeRelated Articles
How to Deliver a Website to a Client (Step-by-Step)
Related to delivering web projects to clients
Read Article →How to Share a React App with a Client (No Vercel, No Git)
Related to sharing React builds with clients
Read Article →Best Platforms for Build Distribution
Related to hosting and distributing builds
Read Article →