miinideckmiinideck
PricingUse casesBlog
Sign in
Tools

ZIP bundle viewer

Drop a .zip of a static site. It unpacks and renders here, in your browser — nothing is uploaded.

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.

How it works

Drop a .zip containing a static site — an index.html plus whatever CSS, JavaScript, images and fonts it loads. The bundle is unpacked in this tab, every asset is wired back to the page that references it, and the result renders as a working site rather than a list of filenames.

That wiring is the part that usually goes wrong elsewhere. A stylesheet's url(...) is relative to the stylesheet, not to the page, so a tool that only rewrites the HTML gives you an unstyled document and the impression your bundle is broken. Both layers are resolved here, which is why fonts and background images survive.

The panel also shows which file was chosen as the entry point and everything else the bundle contains. If a site renders blank, that list is usually the answer — the entry sits one directory deeper than expected, or the build output was never included.

The unpacking rules are the same ones miinideck's real upload runs, not a separate implementation. Same entry-point choice, same handling of a bundle wrapped in one top-level folder, same rejection of paths that try to escape it. So this is a genuine rehearsal: if it renders here, it will render at a link.

Nothing is transmitted. The file is read locally, unpacked in memory, and the assets are handed to the frame as in-page references that stop existing when you close the tab. There is no link at the end of this — that is a separate step you take on purpose.

What this tool doesn’t do

  • Static bundles only. If the site needs a server — a database, a login, an API key that has to stay secret, form submissions that store data — no viewer can run it, because the missing half isn't in the zip. A full application host like Vercel or Netlify is the right tool for that.
  • It renders the bundle as shipped; it doesn't build it. A zipped project folder with src/ and package.json but no build output has nothing to render yet — run the build, then zip what it produces.
  • Very large bundles are capped, because everything is unpacked inside the browser tab rather than on a server. A normal static site is far below that ceiling.
  • One entry point. A bundle containing several unrelated sites will render whichever one the entry rules pick, and the file list shows you which that was.

Questions

How do I preview a zipped website without publishing it?

Drop the .zip here. It unpacks in your browser and renders with its assets resolved, so you see the working site without it existing at any address. That ordering matters more than it sounds: the common alternative is to publish it somewhere to find out whether it works, which means the broken version was live, however briefly, and on a public host it may also have been indexed.

Why does my zipped site render without any styling?

Almost always because the CSS was found but the things the CSS references were not. A stylesheet's url(...) resolves relative to the stylesheet's own folder rather than to the page, so a viewer that rewrites only the HTML leaves every font and background image pointing nowhere. Both layers get resolved here. If it still renders unstyled, check the file list in the panel — the stylesheet itself may not be in the bundle.

Is this the same as a ZIP extractor?

No, and it's worth knowing which you want. An extractor shows you the contents — a file tree you can browse and download from. This renders the site those files add up to. If your question is "what's in this archive", an extractor answers it; if your question is "what does this look like", nothing but a render will.

Does my bundle get uploaded anywhere?

No. The file is read by your browser, unpacked in memory, and rendered from in-page references. Nothing is sent to miinideck, written to storage, or logged, and closing the tab leaves nothing behind. That also means there is no link yet — getting one is a separate step you choose to take.

Will JavaScript run in the preview?

Yes. Scripts inside the bundle run, and libraries loaded over HTTPS from a CDN load normally, so interactive pages behave as they will for a visitor. The frame is sandboxed so the bundle can't reach the rest of this site, but that isolation doesn't change how the bundle itself behaves.

My zip is a whole project folder. Why won't it render?

Because a project folder and a built site are different things. Source files like .jsx or .tsx are instructions for a build step, not something a browser can run, so there is nothing to render until that step has happened. Run your build and zip its output folder — usually dist/ or build/ — which contains the index.html and the compiled assets.

What if the site is inside a folder in the zip?

That's handled. Zipping a folder normally produces mysite/index.html rather than index.html at the root, which would break every relative path if taken literally. A single shared top-level folder is stripped, so the bundle resolves the way it would once hosted.

Can I see which file it used as the entry point?

Yes — it's named in the panel beside the render, with the rest of the bundle listed under it. That is the fastest diagnosis when a site comes up blank or shows the wrong page: you can see immediately whether the file you expected was the one picked.

How do I share the bundle once it renders correctly?

Viewing and sharing are deliberately separate here. When you want a link, miinideck hosts the same bundle at an unguessable URL that stays out of search by default. Without an account the link lasts 7 days and has no password; sign in (free) to add a password or set your own expiry. That step involves a real upload, so it only happens when you ask for it.

Related

HTML viewerFor a single self-contained file.ZIP bundle hostingWhen you want a link, not just a look.Sending a ZIP vs a hosted linkWhat the recipient has to do in each case.Inlining CSS and JavaScript into one fileWhen a bundle could just be one file.Hosting a static Next.js exportWhich folder to zip.
miinideck

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

Product

  • Pricing
  • Use cases
  • 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.