Deploy a build

Deploy your Vite or React buildfrom the dist folder

You ran the build and got a dist/ folder of static files. Zip it, drop it here, and your app is live — hashed assets cached correctly, client-side routes resolving, no deploy pipeline.

Drop a document — or any file

Multiple files become one album link automatically

or

up to 100 MB on the free plan

Free: 20 links, up to 100 MB, never expire · Pro: unlimited, permanent links

Deploy your build in four steps

  1. 1

    Build your app

    Run your production build — npm run build for Vite/React/Vue/Svelte, or the equivalent for your tool. It writes a folder of static files: an index.html, a bundle of hashed JavaScript and CSS in an assets/ folder, and your images and fonts. That folder is a complete static site.

  2. 2

    Zip the output folder

    Compress the build output — dist/ for Vite, build/ for Create React App, or out/ for a static export — into a .zip. You can also zip the whole project; we detect the output folder and serve from it, so you don't have to be precise.

  3. 3

    Upload the ZIP

    Drag the .zip onto the card. We unpack it, find your index.html, and serve every file with the right content type — text/javascript for your bundle, text/css for your styles, font/woff2 for your fonts — which is exactly what the browser needs to run the app.

  4. 4

    Turn on SPA mode and add your domain

    If your app uses client-side routing, enable single-page-app mode so deep links resolve to your index.html instead of 404-ing. On Pro, connect your own domain with automatic SSL. Re-upload after your next build to ship an update to the same URL.

Your build is already a static site

A modern front-end build is, by design, a folder of static files — that's the whole point of the build step. Vite, Create React App, Vue CLI, SvelteKit's static adapter, and Astro all emit an index.html plus fingerprinted JS/CSS bundles and your assets. There's no server required to serve them; you just need somewhere to put the files. Zipping that folder and dropping it here is the shortest path from npm run build to a public URL, with no CI, no deploy config, and nothing to install.

Zip dist/ (or build/, or out/) — we find it

Different tools name the output folder differently: Vite writes dist/, Create React App writes build/, a static Next or Nuxt export writes out/, Jekyll and 11ty write _site/ and public/. You don't have to remember which — if your ZIP contains one of those folders (or a single wrapper folder from compressing on your desktop), we detect the real web root and serve from it. Zip the built output rather than your source; uploading a raw project with no build won't render, and we'll tell you if we can't find an index.html.

Client-side routing that actually resolves

Single-page apps route in the browser: /dashboard and /settings are handled by React Router or Vue Router, not by separate HTML files. That means a visitor who opens a deep link directly — or refreshes on an inner page — needs the server to hand back index.html so your router can take over. Turn on single-page-app mode and that's exactly what happens: unknown paths fall back to index.html with a 200, so refreshes and shared deep links work instead of 404-ing. Leave it off for a plain multi-page site and unknown paths return a real 404 (or your own 404.html).

Frequently asked questions

Whichever your tool produces: dist/ for Vite, build/ for Create React App, out/ for a static export. You can also zip the whole project — we detect the output folder (dist/build/out/public/_site) and serve from it, so you don't have to be exact.

Yes. Every asset is served with the exact MIME type the browser requires — text/javascript for JS, text/css for CSS, font/woff2 for fonts — and content-hashed bundles get a one-year immutable cache while HTML stays no-cache, so updates show immediately.

Turn on single-page-app mode. Unknown paths then fall back to your index.html with a 200, so deep links and refreshes let your router (React Router, Vue Router, and so on) resolve them instead of returning a 404.

Yes, if you export a fully static build (the out/ folder). Anything that needs a running server at request time — server components rendered per request, API routes, server middleware — is out of scope for static hosting; export static output or host on a platform that runs the server.

Run your build again, zip the output, and upload it — the same URL serves the new version, so links you've shared keep working. There's no CI pipeline and no redeploy command; replacing the ZIP replaces the site.

Your link is 10 seconds away

Upload a file and share one clean, trackable link — free, no sign-up to start.