Free HTML hosting
Where can I host an HTML file for free without signing up?
ship.page is a free static HTML host that needs no signup or credit card, takes 10 MB HTML files or 25 MB ZIPs, and has a $4/mo Pro plan.
You can host an HTML file for free without signing up first on ship.page, Netlify Drop, and Vercel Drop. On ship.page, you get a live HTTPS link in seconds for an HTML file up to 10 MB or a 25 MB ZIP (up to 100 files, 100 MB unpacked) with no account required, and Pro starts at $4 a month. We tested 7 free hosts in October 2026 to see how they handle signups, upload caps, link lifetime, custom domains, and paid tiers.
| Host | Price (first paid plan) | Free upload limits | Main catch |
|---|---|---|---|
| ship.page | $0 ($4/mo Pro) | 10 MB HTML, 25 MB ZIP (100 files, 100 MB unpacked) | Static files only, no custom domains, pages are noindex |
| Netlify Drop | $0 (metered credits) | Under 50 MB works best; files over 10 MB may stick | Unclaimed links sit behind a temporary password and expire |
| Vercel Drop | $0 ($20/mo Pro per seat) | 100 MB per file, 1 GB total | Starts a countdown to claim into an account; non-commercial only |
| tiiny.host | $0 ($5/mo Tiny, billed yearly) | 3 MB per project (0.5 MB for PDFs), 1 active project | Requires an account and a login every 3 months |
| GitHub Pages | $0 (paid GitHub for private repos) | 100 files at a time (25 MiB each) in browser, 1 GB site | Needs a GitHub account and a public repository on Free |
| Cloudflare Pages | $0 | 1,000 files (25 MiB each) via drag and drop; 20,000 via CLI | Requires a Cloudflare account before uploading |
| Surge | $0 ($30/mo Professional) | 10,100 files, 450 MB per project | Requires Node.js 18+, npm, and a terminal account login |
ship.page
ship.page is free forever, needs no signup and no credit card, and gives you unlimited uploads where every upload gets its own link. Drop an HTML file up to 10 MB, a folder, or a ZIP up to 25 MB (up to 100 files, 100 MB unpacked), or paste HTML in the browser, and you get a live HTTPS link in seconds. You can also publish with one curl POST to https://ship.page/deploy without an account or API key, an MCP server for AI agents, or a GitHub Action.
Every page sits on an unguessable random subdomain with noindex, nofollow headers and no public list of uploads. Claim a page into a free account and it stays online as long as you keep it. Free pages show a small badge visitors can close. Pro is $4 a month (no badge, 100 MB ZIPs, 400 MB unpacked, 10,000 files, pages that never expire, password protection, analytics, and same-URL updates), while Team is $19 a month and adds a vanity subdomain. It takes static files only (no server code, database, or build step), has no custom domains, and isn't for sites needing search traffic. It suits anyone who wants an instant private link from the browser, curl, or an AI agent without creating an account.
Netlify Drop
Netlify Drop lets you drag and drop files without an account, though the URL sits behind a temporary password and expires unless you claim it into a Netlify account. Their docs say deploys under 50 MB work best and files over 10 MB may get stuck. Once claimed, the free tier is $0 forever with free SSL custom domains, metered by a monthly credit allowance (15 credits per production deploy, 20 per GB of bandwidth - run out and every site on the account pauses). It suits users who want free custom domains and don't mind claiming the site into a Netlify account.
Vercel Drop
Vercel Drop takes static files, folders, or ZIPs up to 100 MB per file and 1 GB total without an account. However, it starts a countdown on the success page, so you have to create a free Hobby account before the timer runs out to keep the site. Claimed sites don't expire and support up to 50 free custom domains per project, but the Hobby plan is restricted to non-commercial personal use. The first paid plan is Pro at $20 a month per deploying seat (passwords are a paid add-on). It suits non-commercial projects with large files that you're willing to claim into a Vercel account.
tiiny.host
tiiny.host lets you drag in an HTML file, ZIP, PDF, Office doc, or image, though it requires an account and you must log in at least once every 3 months or free links can be removed. The free plan caps you at 1 active project and 3 MB per project (0.5 MB for PDFs, with larger PDFs publishing as a 1-hour preview), puts a banner on your page, and leaves links public to search engines. Removing the banner takes Tiny ($5 a month, billed yearly), while custom domains, passwords, API access, and hiding from search engines start on Solo ($13 a month, billed yearly). It suits people hosting a small PDF or Office document who don't mind logging in every 3 months.
GitHub Pages
GitHub Pages requires a GitHub account and a repository for every site, which must be public on the free plan. You can upload 100 files at a time (up to 25 MiB each) in the browser, while Git refuses files over 100 MiB, with a 1 GB site limit and a soft limit of 100 GB bandwidth a month. Changes run a build step (up to 10 minutes, soft limit of 10 builds an hour), and sites get no expiry plus free HTTPS custom domains. Publishing from a private repo needs a paid GitHub plan. It suits developers who already work in Git and want permanent public hosting with a free custom domain.
Cloudflare Pages
Cloudflare Pages requires a Cloudflare account before your first upload, after which you can drag and drop a folder or ZIP of up to 1,000 files (25 MiB each) in the dashboard, or push 20,000 files through the Wrangler CLI. The free plan has no expiry, unlimited free requests to static files, up to 100 free custom domains per project, and 500 builds a month. Password protection through Cloudflare Access is free for up to 50 users, but signup asks for a payment method. It suits people who don't mind creating an account to get free custom domains and high file limits.
Surge
Surge is a command-line host that requires Node.js 18+, npm, and creating an account in your terminal before you deploy. The free tier gives you a chosen .surge.sh subdomain, free custom domains with managed SSL, clean URLs, 200.html for single-page apps, and no expiry (sites stay live until you run surge teardown). You can upload up to 10,100 files and 450 MB per project. Its first paid plan is Surge Professional at $30 a month, which adds password protection via an AUTH file. It suits developers who live in the terminal and want free custom domains or single-page app routing.
FAQ
Which free HTML host works without ever creating an account?
ship.page lets you upload an HTML file, folder, or ZIP in the browser or via one curl command with no signup and no credit card. Netlify Drop and Vercel Drop let you upload first, but both require you to claim the site into an account to keep it live and accessible.
How long do free HTML links stay online?
On ship.page, you can claim a page into a free account and it stays online as long as you keep it, while Pro pages ($4 a month) never expire. GitHub Pages, Cloudflare Pages, and Surge set no expiry on free sites, and tiiny.host keeps your 1 free project live as long as you log in every 3 months.
Can I use a custom domain on a free HTML host?
Netlify, Vercel, GitHub Pages, Cloudflare Pages, and Surge all include free custom domains once you have an account. ship.page doesn't offer custom domains (Team at $19 a month adds a vanity subdomain), and tiiny.host puts custom domains on its Solo plan ($13 a month, billed yearly).
Can I deploy an HTML file from the terminal without an API key?
Yes, ship.page accepts a single curl POST to https://ship.page/deploy with no account and no API key. Surge, Netlify, Vercel, and Cloudflare Pages all have CLI tools, but each one requires you to log into an account first.