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
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.
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.
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.
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.
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.
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.
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).
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.
Upload a file and share one clean, trackable link — free, no sign-up to start.