miinideckmiinideck
PricingUse casesBlog
Sign in
Use cases/Host a ZIP bundle as a live page behind a private link

ZIP file hosting — a zipped site, behind one link.

Got a folder of HTML, CSS, JS, and assets? Zip it and drop the ZIP — miinideck unpacks it and serves the whole bundle as a live page behind one private link. Internal links, images, and scripts all resolve, so a multi-file site runs the way it should, privately, in seconds.

Drop a .zip bundle here

Unpacked and rendered in your browser. The bundle is not uploaded, stored, or logged.

The rendered bundle will appear here.

Drop a bundle to see it render.

Drop a .zip bundle here

Unpacked and rendered in your browser. The bundle is not uploaded, stored, or logged.

Try it now

Drop a file — get a private link in seconds. No sign-up.

Drop an HTML, ZIP, PDF, PNG or JPEG file, or click to choose.
One file, or a ZIP bundle. Max 3 MB.

Up to 3 MB, link self-destructs after 7 days. Sign up free to keep links forever and store more.

How to zip a site so it works

  1. Run your production build and open the output folder (usually dist/ or build/) — not the project folder.
  2. Select the files inside it and compress them. Zipping the folder itself is fine too; a single wrapper folder is removed on upload.
  3. Make sure index.html is at the top level. If there isn't one, the shallowest HTML file opens first.
  4. Optional: open the ZIP in the free ZIP viewer to preview it with the same rules the upload uses.
  5. Drop the ZIP in and send the link.

ZIP limits at a glance

Limit
Unpacked size3 MB with no account · 10 MB Free · 25 MB Solo · 50 MB Studio
Files the browser can useUp to 200 per bundle
Entries scannedUp to 2,000 (including skipped ones)
Compression ratioOver 100:1 is refused
Password-protected ZIPsRefused — use a link password instead
Source files (.jsx, .tsx, .vue …)Skipped — upload the build output
.pdf inside a ZIPSkipped — upload a PDF on its own instead

How it works

  1. 1

    Zip the folder — the entry HTML plus its CSS, JS, images, fonts, and any other assets — and drop the ZIP in. miinideck unpacks it and serves the entry page with relative paths intact. If your zip tool wrapped everything in one named folder (mysite/index.html, mysite/style.css), that wrapper is stripped automatically, so the relative paths inside your HTML still resolve. That single detail is the most common reason a zipped site goes live with every image broken.

  2. 2

    You get one private, unguessable link for the whole bundle. It's no-indexed by default, so it stays off search, and the viewer opens it in any browser with no account.

  3. 3

    Add a password or an expiry, and re-upload an updated ZIP whenever the site changes — the link stays the same across versions, so a bookmark you already sent keeps opening the current build.

Frequently asked questions

How do I host a ZIP file as a website?

Drop the ZIP into miinideck. It unpacks the bundle and serves the entry HTML with the rest of the files (CSS, JS, images, fonts) alongside it, so the whole multi-file site runs behind one private link — no manual unzipping, no server to set up.

Do internal links and assets in the ZIP work?

Yes. miinideck preserves the folder structure and serves relative paths intact, so navigation between pages and references to images, fonts, and scripts all resolve correctly.

What should be in the ZIP?

An entry HTML file (commonly index.html) plus everything it references. Anything that runs in the browser works; the bundle just can't include a backend server, since miinideck serves static files, not a running server.

Which page does the link open if there is no index.html?

A root index.html (or index.htm) always wins. Without one, the shallowest HTML file in the bundle becomes the entry page, and ties are broken alphabetically so the choice is predictable rather than random. If the wrong page opens, the fix is to rename the one you want to index.html and put it at the top of the ZIP.

Why was my ZIP rejected as a source project?

Because it contained source files a browser cannot run — .jsx, .tsx and friends — which usually means the whole project got zipped instead of the build output. Run your production build and zip just the output folder (normally dist/ or build/): the compiled JS and CSS, no source files and no node_modules. It also helps to make asset paths relative so they survive being served from a sub-path.

Will a Unity or Godot WebGL export run?

A single-threaded export behaves like any other static bundle. A multi-threaded one will not start here, because that needs SharedArrayBuffer, which browsers only hand out on a cross-origin-isolated page — and the viewer does not send the COEP header that isolation requires. Re-export without threads, or use a host that lets you set those headers yourself, such as Vercel or Netlify. We would rather say that plainly than let you find out after the upload.

Is the hosted ZIP private?

Yes — the link is unguessable and no-indexed by default. A password is free on every plan, including the free one, and even an upload made with no account at all can take one. On the free plan links run for 7 days, except one always-on link you can keep; Solo and Studio drop the forced expiry and raise the size cap.

Can the person I send it to download the ZIP?

No. They get the site running in their browser, not the archive. If what you actually need is to hand someone a .zip to download and unpack, a file-transfer service is the right tool for that — this is for turning the bundle into a page people can open.

Which file types inside the ZIP are served?

The ones a browser uses: HTML, CSS, JavaScript (including .mjs), JSON, SVG, PNG, JPEG, GIF, WebP, AVIF, web fonts (WOFF, WOFF2, TTF, OTF, EOT), plain text, Markdown, icons and source maps. Everything else is left out — including source files that need a build step and PDFs, which are skipped inside a bundle.

How big can the ZIP be?

The limit goes up with the plan — no account 3 MB, Free 10 MB, Solo 25 MB, Studio 50 MB — and for a ZIP it applies twice: to the file you upload and to everything inside it once unpacked. A compressed 8 MB bundle that unpacks to 14 MB won't fit the free plan, so check the unzipped size of your build folder rather than the size of the .zip. Encrypted (password-protected) ZIPs are refused, because the contents can't be unpacked and served — zip it again without the archive password and use the link password instead.

Learn more

  • Free ZIP viewerPreview a bundle before you upload it.
  • Free ZIP hosts compared, honestlyWho takes a ZIP, and the four ways a zipped site breaks.
  • Static site hostingThe same bundle hosting, framed for builds.
  • Private HTML hostingFor a single self-contained HTML file.
  • Try without signing inDrop a ZIP and see the private link.
  • PricingSize caps by tier.

More use cases

  • Share a Figma export or prototype privately as a link
  • Host a built Slidev deck as a private link to send before a talk or a review round
  • Send a published e-learning course to a client or SME for review when they have no LMS and no seat in your authoring tool
  • Keep the QR code already stuck to every table pointing at a menu whose prices and sold-out dishes change every week

Start free. Keep it private.

No card to try, no sign-up to get a link. Sign up free to keep links forever and store more.

Get started free →Try without signing in
miinideck

HTML files, finally as links — for AI builders, agencies, and consultants. Default-noindex, default-private, default-yours.

Product

  • Pricing
  • Use cases
  • Free HTML hosting
  • Try it free

Resources

  • Blog
  • Free tools
  • Featured on
  • Report abuse

Legal

  • Privacy
  • Terms
Listed onmiinideck listed on Product Huntmiinideck listed on Faziermiinideck listed on TheSaaSDirmiinideck listed on AIToolHuntmiinideck listed on LaunchNest
© 2026 miinideckMade for people who don't want their work indexed.