Skip to content
Free converter · Google sign-in

Turn a ZIP website into a URL

Zip the folder, drop it here, and the whole site goes live — multiple pages, CSS, JavaScript, images and fonts, with every relative path intact.

Free: 3 URLs × 24 hours, 2 MB · custom address, password & editing included · permanent from $9

 · 
.htmltourl.dev
Stays online
24 hours on Free · keep it forever
Password protect this link

Free plan · Google sign-in · URLs are noindex · permanent from $9 · rules

How the ZIP is read

The ZIP is unpacked on our side and each file is served at its path inside the archive. The rules are short:

  • An index.html at the top becomes the home page. If the archive contains one wrapping folder (my-site/index.html), that folder is removed automatically.
  • No index.html? If there is exactly one HTML file, it becomes the home page.
  • Clean URLs. /about serves about.html and /blog/ serves blog/index.html.
  • Single-page apps. Unknown paths fall back to index.html, so React, Vue or Svelte builds with client-side routing work.
  • Junk is ignored. __MACOSX/, .DS_Store and Thumbs.db are skipped.

Preparing the ZIP

Windows: select the files inside your site folder → right-click → Send to → Compressed (zipped) folder. macOS: select them → right-click → Compress. Zipping the files rather than the folder avoids an extra level, though either works. For framework projects, zip the build output (dist/, build/ or out/), not the source.

Framework build settings that matter

ToolFolder to zipSetting to check
Vite (React, Vue, Svelte)dist/base: './' or leave the default / (the site is at the root of its subdomain)
Create React Appbuild/"homepage": "." is not needed at a subdomain root
Next.jsout/output: 'export' in next.config.js (static export only)
Astro, Eleventy, Hugo, Jekylldist/, _site/, public/Static output (default)

Limits

Free: 2 MB per site (ZIP included). Starter 25 MB, Pro 50 MB, Business 75 MB per site, with ZIP uploads up to 25 MB on paid plans. Up to 1,000 files. Executables (.exe, .apk, .dmg…) are refused. If a site is just over the limit, compress images to WebP first — it usually halves the size.

Prefer not to zip?

Choose choose a folder in the upload tab and pick the site folder directly; the browser sends every file with its path. On phones, where folders cannot be picked, a ZIP is the way.

Related guides

Frequently asked questions

My ZIP uploads but the page is blank. Why?

Usually the build uses absolute paths to a sub-folder (e.g. /my-repo/assets/… from a GitHub Pages config). Rebuild with the base path set to / or ./.

Can I upload a React or Vue app?

Yes — the built output. Unknown paths fall back to index.html, so client-side routing works. Server-side rendering and API routes do not.

Is there a file count limit?

1,000 files per site, which covers almost every static site.

Can I update a ZIP site later?

Yes. Upload a new ZIP via Update content in My links; the URL stays the same and the old files are replaced.

Other converters

Paste HTML. Get a URL.

Code, an .html file, a ZIP or a whole folder becomes a live HTTPS URL with your own address, an optional password and a QR code. Free to start with Google sign-in; paid plans keep URLs online for good.

Convert HTML to URL