Host a React app as a live URL.
Zip up your `dist` or `build` folder, drop it here, and your React app goes live at its own link on nudgehost.site. No deploy config, no environment setup.
Key points
- Zip the output folder from `vite build` or `npm run build` and upload; the app goes live at its own subdomain, like your-name.nudgehost.site.
- Client-side routing works via a built-in SPA fallback that rewrites unknown paths to index.html.
- The app serves at the root of its link, so hashed asset paths (images, fonts, CSS) load exactly as the build emits them.
- Free with no signup; 25MB unpacked handles most prototype builds and small production apps.
React apps built with Vite or Create React App produce a static `dist` or `build` folder once the build step finishes. That folder is the whole app. An index.html, a bundle of JavaScript, a stylesheet, the assets. Any static host can serve it. NudgeHost serves it from its own subdomain on nudgehost.site after you zip the folder and upload the ZIP. The app sits at the root of that link, so root-absolute asset paths resolve exactly as the build wrote them. That's the whole deploy step. An AI-built React app is no different; you can host a Lovable export through the identical flow.
Client-side routing is the one detail that catches people out. A React app using React Router or TanStack Router handles its own URLs in JavaScript, which means a direct request to `/about` would normally 404 on a static host because there's no `/about/index.html`. NudgeHost handles this with an SPA fallback. Any path that doesn't match a file in the bundle gets rewritten to `/index.html`, and the router takes it from there; requests for actual files that are missing still 404. When the app calls an external API, that request answers to CORS, the browser rule the API itself has to allow.
If your build is more than 25MB compressed, the usual culprit is unminified source maps or unused public-folder images shipped with the bundle. Strip source maps from the production build and audit the public folder before zipping; oversized hero images are a frequent offender, and you can convert PNG to WebP to shave them down first. For multi-page projects without a framework, you can upload a ZIP and the bundle serves as a small static site, the same way you'd put a Claude output online or publish a v0.dev component. If you're working in Vue rather than React, you can publish a Vite or Nuxt static build from the sibling page that covers Vite and Nuxt static builds.
Ten active builds on the free plan, no signup needed. Build sizes for typical prototypes are well under the 25MB ceiling; production apps that ship hundreds of vendored libraries are where the Pro plan's higher limit pays off. Custom domains and password protection live on Pro too, which matter when the URL is going to a client rather than a friend.
Drop a file here and get a shareable link in seconds.
Try it freeFrequently asked questions
Which folder do I zip, `src` or `dist`?
The build output folder, `dist` for Vite and `build` for Create React App. The source folder isn't directly servable.
Will client-side routes like /about work?
Yes. The SPA fallback rewrites unmatched paths to index.html so your router can pick them up. Requests for files that don't exist in the bundle still return a real 404.
Can I use environment variables?
Anything inlined at build time (the standard `VITE_` or `REACT_APP_` prefix) ships inside your bundle and works normally. Server-side env vars are not relevant here since there's no server.
What about API calls from the app?
Calls to external HTTPS APIs work as long as the API allows the NudgeHost origin via CORS. There's no built-in server, so anything requiring a backend will need one hosted elsewhere.
Get file-sharing tips that actually help.
One email a month. No spam, no fluff.
Related tools
Other things you can do on NudgeHost.
Ready to share your file?
Free forever, no credit card needed. The whole thing takes a few seconds.
Get started free