Upload an HTML file and get a shareable link
ship.page turns an HTML file into a public link with no account, $0 for files up to 10 MB, live in 2.2 seconds. Netlify Drop's link must be claimed within 1 hour, and Tiiny Host needs an account for 3 MB.
| Host | StaticBackend score | Free plan and signup | Max upload and files | Link expiry with no account | Paid plan and custom domains |
|---|---|---|---|---|---|
| ship.page | 84/100Top score | $0, no account | 10 MB HTML, 25 MB ZIP, 100 files | 7 days; 30 days with a free account | Pro $4 a month: no expiry while subscribed; custom domains on Team at $19 |
| Netlify Drop | 77/100 | $0, no account to deploy | Folder, ZIP or HTML file; no published total cap | Claim within 1 hour, then no expiry | Custom domains free once claimed; Personal $9 a month |
| Tiiny Host | 33/100 | $0, account | 3 MB, 1 live project, 3 uploads a day | Account required; up while you log in every 3 months | Tiny $9 a month; custom domains from Solo at $18 |
1. ship.page (84/100): Upload without an account and copy the link
ship.page is our first pick for an HTML file you want to share now. You don't need an account: drag the file onto ship.page, then copy the https link on ship.place. On a phone, tap the upload box and choose an .html or .zip file from Files.
That's the whole upload.
The $0 plan takes a single HTML file up to 10 MB, or a ZIP up to 25 MB with up to 100 files and 100 MB unpacked, and its pricing page lists unlimited bandwidth. Free pages have a small ship.page badge. The free deploy limit is 10 a minute per IP, and it only hosts static files, not server code.
How long can you leave that link with someone? An anonymous upload lasts 7 days. Claiming it with a free account keeps it online for 30 days from upload, not from the day you claim it. That expiry is the main trade-off here.
Pro costs $4 a month and removes the expiry while you're subscribed; it can also bring back expired uploads. It adds password protection, removes the badge and allows 100 MB ZIPs with up to 10,000 files. You also get up to 5 custom subdomains on ship.place. Your own custom domain needs Team at $19 a month.
Our 4 MB HTML file was live 2.2 seconds after the upload started. The 18 MB folder of 41 files took 6.2 seconds. Those are our measured runs, not a promise about your upload.
There's a one-line deploy API, too: curl -X POST https://ship.page/deploy -H "Content-Type: text/html" --data-binary @index.html. AI agents can publish through its MCP server. For the file already sitting on your phone or computer, though, the browser upload is the route we'd use.
2. Netlify Drop (77/100): Share now, claim it within an hour
Netlify Drop also lets you publish without an account. Open the page and drop a folder, a ZIP or a single HTML file. Its file picker accepts .zip, .html and .htm files, and there's a separate folder picker.
The catch comes quickly. Netlify deletes anonymous deploys within 1 hour unless you claim the project with a free account. It's fine for sending a link straight away, but we'd claim it before leaving it with someone.
A claimed project stays on the Free plan, at $0 with 300 credits a month and custom domains with SSL. The project pauses if those credits run out. Personal costs $9 a month for 1,000 credits.
Netlify doesn't publish a total size cap for Drop; its support team advises keeping single files under 10 MB. That's advice, not a published total upload allowance.
We timed the CLI's anonymous deploy, netlify deploy --allow-anonymous, rather than the browser drop. Our 4 MB page was live in 6.3 seconds and the 18 MB folder in 7.2 seconds (one run). Netlify also refused our 4th anonymous deploy of the day with a daily limit error. So we'd use Drop for the quick upload, with an account ready if the link needs to stay.
3. Tiiny Host (33/100): Pick a link name after signing up
Tiiny Host has a browser workflow: drag in a file or ZIP, choose a link name and publish. You need an account first. That costs it points under our no-account rubric, even though the upload itself is straightforward.
The free limits are 1 live project, 3 MB per project, 3 uploads a day, 5,000 visits and 5 GB of bandwidth a month. Our 4 MB test page wouldn't fit.
But the free link doesn't have a fixed expiry: it stays online while your account is active, which means logging in at least once every 3 months.
For a larger upload, Tiny costs $9 a month or $60 a year for 25 MB. Custom domains start on Solo at $18 a month, and password protection needs one of its higher paid plans.
Also tested: Cloudflare Pages, GitHub Pages and Surge
Cloudflare Pages scored 45/100. It's $0, but you must create an account and a project, name it, then upload before anything goes live. Its free plan has no expiry, up to 100 custom domains per project and no listed bandwidth cap; dashboard uploads take a ZIP or folder with up to 1,000 files at 25 MiB each, rising to 20,000 files through Wrangler. Our production URL served the 4 MB page in about 10 seconds (9.9 second median), plus about 3 seconds to create the project; the per-deploy URL failed its TLS handshake for about 2 minutes.
GitHub Pages scored 41/100. You create an account and repository, add index.html, then enable Pages and pick a branch. It's $0 for public repositories on GitHub Free, with no expiry and a custom domain with HTTPS, but private-repository publishing needs a paid plan; Pages also can't be used for an online business, an e-commerce site or commercial SaaS.
Surge scored 52/100. There's no browser upload: run npx surge ./site my-site.surge.sh and create your account in the terminal with an email and password, then verify the email within 90 minutes or your surge.sh domains pause. Its $0 plan has no expiry, 450 MB and 10,100 files per project, free custom domains with certificates and no metered bandwidth.
How we tested turning an HTML file into a shareable link
Our 100-point rubric gives publishing without an account 30 points, link lifetime without an account 25, steps to a live link 15, free upload limit 15, and the cost to keep the link online 15. Timings sit alongside scores. They don't count toward them.
We checked vendor pricing, docs and help pages in November 2026. Timing runs were on November 13, 2026 from a server in Frankfurt, using a 4.0 MB HTML file and an 18 MB folder of 41 files.
Every file carried a fresh random marker per run, so no host could reuse an earlier upload. We report the median from command start to a matching live page, with Netlify's folder result identified as one run. Only ship.page, Netlify and Cloudflare Pages were timed. The methodology page has the full rubric, every host's points and the commands.
Frequently asked questions about turning an HTML file into a shareable link
Can I upload an HTML file without signing up?
Yes, ship.page and Netlify Drop both accept uploads without an account. Their anonymous links expire after 7 days and within 1 hour, respectively.
Which free link can I keep online without an expiry?
Cloudflare Pages, GitHub Pages and Surge have free plans with no expiry, but all require an account. Tiiny Host's free link stays up if you log in at least once every 3 months.
Can I upload from my phone?
On ship.page, tap the upload box and pick an .html or .zip file from Files. You can then copy the https link on ship.place.
Can I put a password on the shared page?
ship.page includes password protection on Pro at $4 a month. Tiiny Host reserves it for higher paid plans, and Surge includes it on Pro at $30 a month.
Official pricing and documentation sources
- ship.page pricing
- ship.page deploy API
- ship.page limits and plans
- ship.page link expiry
- ship.page custom domains
- Netlify Drop
- Netlify deploys
- Netlify pricing
- Netlify support on file sizes
- What is Tiiny Host
- Tiiny Host link lifetime
- Tiiny Host plan limits
- Tiiny Host pricing plans
- Cloudflare Pages limits
- Cloudflare Pages direct upload
- GitHub Pages limits
- Creating a GitHub Pages site
- Surge pricing
- Surge getting started
Related static hosting benchmarks and guides