Twelve ways to put a single HTML file online for free — GitHub Pages, Netlify, Cloudflare, Vercel, Tiiny, Neocities, Static.app, EdgeOne, host-html, Linkyhost, Wasmer, and a private-link option — with an honest table of which fits which job, public or private.
"What's the best free way to host a single HTML file" sounds like one question with one answer. It's actually two questions wearing one coat — and most "best free HTML hosting" lists only answer the first.
The fork: is the page meant to be found, or meant for specific people? A launch page, a portfolio, a public demo wants reach — the more eyes the better. A client report, a draft, a private invite wants the opposite — it should open for the people you send it to and stay off search engines. Those are different jobs, and they point at different hosts.
Here's the honest landscape for both.
| Host | Free tier | Ease of setup | Visibility | Best for |
|---|---|---|---|---|
| GitHub Pages | Free, permanent | Hard — needs a git repo | Public, indexed | Permanent free public pages, if you're OK with git |
| Cloudflare Pages | Free, generous, fast CDN | Hard — git / CLI | Public, indexed | Performance and scale; free custom domain |
| miinideck | Free: unlimited links & projects | Easiest — drop one file | Private by default; opt-in searchable | Deciding who sees a page — private, or public per document |
| Netlify (Drop) | Free (300 credits/mo) | Medium — folder deploy; no sign-in needed to publish as-is | Public, indexed | No-CLI public deploys |
| Vercel | Free hobby (personal use) | Hard — git / CLI | Public, indexed | Framework apps (Next, React) |
| Tiiny.host | Free: 1 project, 3 MB, 5,000 visits/mo | Easiest — drop one file | Public, indexed | The simplest public single page |
| Neocities | Free 1 GB | Medium — web editor | Public, community | Personal / creative pages |
| Static.app | Free: 1 website, 50 MB, subdomain + SSL, commercial use allowed | Easiest — drag a ZIP or HTML | Public; password-protected pages offered | A finished site live fast, without git |
| EdgeOne Makers Drop | Free, 25 MB per file | Easiest — drop a file or folder, or paste code | Public, indexed | A free tier with a CDN and edge functions behind it |
| host-html.com | Free, but free pages expire after 3 days | Easiest — paste code or drop a file | Public; password on paid | A public page you only need for a few days |
| Linkyhost | Free: 1 text-only upload — 100 KiB HTML/TXT/CSV or 1 MiB PDF/DOCX, their banner | Easiest — upload a file | Public; password on paid | Handing over a document as a link — PDF and DOCX as well as HTML |
| Wasmer | Free: 1 app, 1 GB storage, 100k visits/mo | Medium — upload, or connect GitHub | Public | A page that is really an app (PHP, Python, WordPress) |
Checked against each vendor's own pages: Tiiny.host, Neocities, Static.app, host-html.com and Linkyhost on 12 September 2026; Wasmer on 9 September 2026; EdgeOne Makers Drop on 5 September 2026; Vercel on 10 August 2026; GitHub Pages, Cloudflare Pages and Netlify on 16 September 2026. Everyone sets their own limits and prices — check the vendor's site for what's current.
PageDrop used to be on this list, and isn't any more. Its own site now carries a wind-down notice: new sales and open uploads have ended, existing Creator Passes can be redeemed until 31 October 2026, and the site stays online only until the last existing page reaches its stated expiry. So it's no longer somewhere you can put a file. If you have pages there, moving a page off PageDrop walks the whole thing — getting the file back, what happens to the link people already have, and how to choose the next host. (Checked 22 August 2026.)
(Free tiers shift — verify current limits before you commit a workflow to one.)
Eleven of the twelve are built for this, and they're genuinely good at it.
GitHub Pages is the honest winner for permanent, free, public. It serves a static site straight from a repo, costs nothing, carries a soft bandwidth limit of 100 GB a month and a 1 GB size limit per published site, and the page lives as long as the repo does. The cost is the workflow: you need a git repository, and the page is public and indexed. For a developer who already lives in git, there is no better free deal.
Cloudflare Pages is the one to reach for when performance or scale matters. Free, a fast global CDN in front of every page, up to 100 projects per account on the free plan, and a free custom domain. Git-based like GitHub Pages, so the same workflow cost applies.
Netlify is a popular no-CLI option: Netlify Drop lets you drag a folder onto a page and get a live URL, no git required (a full git-connected workflow is there too). The free plan is metered in credits rather than a flat bandwidth allowance, and it runs on a global CDN. One honest caveat from actually using it — despite the drag-and-drop, the account flow and the folder-not-a-file model trip up true beginners. It's more developer-friendly than beginner-friendly.
Vercel is the right shape when the thing is a framework app — Next.js, React, a build step. The free hobby tier is for personal, non-commercial projects; commercial use moves you to a paid plan, so check the terms if it's for work.
Tiiny.host is the one to beat for beginner-friendly: drop a single HTML file, get a URL — no git, no folder, barely any account friction. If you've never deployed anything before, this is the lowest-friction public option there is. Its free tier does not put a clock on the page: tiiny's own FAQ says links stay online indefinitely as long as you log into the account once every three months. What the free tier caps instead is scale — one active project, 3 MB per upload, 5,000 visits a month — so it runs out when the page gets popular or the file gets big, not when the calendar turns. For a head-to-head on where a private-link host fits next to it, miinideck vs tiiny.host walks the two design intents.
Neocities is the home for personal and creative pages — a free 1 GB tier, an in-browser editor, and a community in the spirit of the old personal web. Less a deploy target for work, more a place for a page that's yours.
Static.app sits in the same drag-and-drop lane as Tiiny: upload a ZIP or an HTML file, pick a subdomain, and it's live — no git, no build step, and the free tier allows commercial use, which Vercel's hobby tier doesn't. Its own comparison page is refreshingly straight about the trade: a custom domain is a paid feature there (its Starter plan, $5/mo, or $60/year) where GitHub Pages, Netlify and Vercel include one free. What you get for that is not having to keep a public repo.
EdgeOne Makers Drop is the most infrastructure you can get for nothing on this list — a global CDN, edge and cloud functions, and zero-config Next.js with SSR and SSG, on a free tier that takes a file, a folder, or pasted code. The single-file ceiling is 25 MB. If your page is genuinely static, most of that machinery goes unused; it earns its place when the thing you dropped is going to grow into an app.
host-html.com is the closest thing here to Tiiny's model with a different clock on it: paste code or drop a file, get a live URL, and API publishing is on every plan including the free one. The trade is written on its own pricing page — free pages expire after three days, and keeping them live forever (plus password protection, custom links and version history) is the paid tier at $12/mo. That makes the free tier a genuinely good preview slot and a poor deliverable slot, which is a reasonable thing for a product to choose.
Linkyhost is shaped less like a web host and more like a document-link tool: it takes PDF and DOCX alongside HTML and turns each into a shareable URL with analytics attached. Its free tier is one text-only upload — 100 KiB of HTML, TXT or CSV, or a 1 MiB text-only PDF or DOCX of at most ten pages — capped at 200 views a month and carrying its banner; images, richer documents and full websites are Pro, as are analytics, password protection and custom domains, at $5/mo month-to-month or $60/year. Reach for it when the thing you're handing over is a document and you want to see whether it got opened.
Wasmer is on this page because it ranks for the question, but it's answering a bigger one. It's an application platform — PHP and MySQL, Python, WordPress, one-click framework deploys — with a free tier of one app, 1 GB of storage and 100,000 visits a month. If your page is genuinely one HTML file, almost all of that is machinery you won't touch. If the "page" is about to need a database, it's the row on this list that grows with you.
The thread across all eleven: the page is public. That's a feature when you want reach, and a problem when you don't.
This is the half most lists skip, and it's a real job: a client report with private numbers, a draft you're not ready to publish, an invite for a named list. On a public host, the same page that's "free and online" is also findable — it will surface in search within a few weeks, and there's no access control beyond a hard-to-guess URL you have to add yourself.
A private-link host inverts the defaults. The page is noindex by default (it won't be crawled into search), it sits behind an unguessable URL that acts as the access key, and you can add a password for anything sensitive. The job isn't reach by default — it's control: the page opens for the people you choose, and you can still flip a specific document to searchable when you do want that one found.
If you landed here already using one particular tool and wondering what the private counterpart looks like, these go job-by-job in more detail than a survey can: a Tiiny Host alternative for sending work to specific people rather than publishing it; a Vercel Drop alternative that keeps one link across revisions instead of a fresh production URL per drop; an ngrok alternative for a finished file when there's no process on your machine to tunnel to; and a Dropbox alternative that sends a page to open rather than a folder to download from.
That's the slot miinideck fills — and setup is as low-friction as Tiiny: drop one HTML file, get a link (how the free HTML hosting works). The free tier gives you unlimited links and projects — each a private, noindex page with free password protection, and you can opt one document into searchable when you do want it found — and links auto-expire after 7 days (you keep one always-on permanent link), with a small "Powered by" footer on shared links. Paid tiers ($4.99/mo Solo, $14.99/mo Studio) make every link permanent, drop the footer, and raise the searchable allowance — 5 on Solo, unlimited on Studio — so visibility is a per-page choice, not a lock. Studio also adds your own custom domain.
It's worth naming the other shape of private, because until recently you had a real choice here. PageDrop was private-by-default too and pushed it the opposite way: the link was built to end — no account, an expiry picked at publish, and an uploaded page that was deliberately immutable, so revising meant a new link. That's a clean design for a throwaway preview and an awkward one for anything you'll revise, and it was the honest answer whenever the page genuinely should not outlive the week. With PageDrop winding down, the same job now has to be done as a setting on a host that also does permanence — an expiry date you choose per page — rather than as a host whose whole design is the deadline. Where each fits walks what that trade actually was.
To be clear about where it doesn't fit: for a permanent free public site, miinideck is the wrong tool — its public opt-in is a per-document setting, not free public-site hosting — and GitHub Pages is the right one. The private-link host earns its place when "who can see this" is a question you want to answer yourself. For the channel choice once a page is private, sharing an HTML report with a client compares the options.
The honest one-line routing:
One axis this table doesn't cover is how long the page is supposed to survive. Some tools treated expiry as a feature rather than a limitation — the PageDrop comparison walks the clearest example of a host built so pages disappear on purpose, which was the right design for a throwaway demo and the wrong one for a client deliverable. It's also a reminder worth carrying into whichever row you pick: a free host is a dependency, and dependencies end.
Most "best free HTML hosting" questions are really public-hosting questions — and the public hosts here answer them well. The job those lists almost always skip is the private one: a page meant for specific people, not the open web. That's the only job miinideck is the answer to. Pick the row that matches the job, not the host with the loudest free tier.
Every list of free HTML hosts assumes you'll sign up. If you won't, the field narrows to a handful — and each one charges you for it in a different currency. Which hosts genuinely need no account, what you give up, and when signing up is the cheaper trade.
GitHub Pages publishes a public, git-tracked site to the open web. A private unguessable link delivers a self-contained page to specific people. Here is the honest split — by who reaches it, what the URL is for, and where the work lives — so you pick the right one instead of bending one to fit.
When the page is a folder rather than one file, the hosting question changes and so do the ways it breaks. Which free hosts take a ZIP, what happens to your folder structure once they unpack it, and the four failure modes that account for almost every broken zipped site.
miinideck turns a single HTML file into an unguessable link with optional password and expiry. Default-private, never indexed.