Free HTML hosting
You have an HTML file — a report, a demo, a page an agent just generated. Hosting it should mean getting a link, not creating an account, configuring a project and connecting a repository. Drop the file here and it's online.
Ship zone
Drag in a single .html file, a .zip of your build, or a whole folder.Tap to pick an .html file or a .zip of your build.
Free drops: zip up to 25 MB — live for 30 days — no account needed
Uploading publishes your file. The link is public but unlisted, not password-protected — leave out secrets and confidential content.
From file to live link in under a minute
- Save or export your page as a single HTML file — or zip a folder with index.html at the root. Anything that opens in a browser from disk is ready.
- Drop it into the ship zone above, or POST it with one curl. Selecting the file stages it; your email address sends it live. No account, no API key.
- Open the link to check it, then send it. The page is live worldwide on its own subdomain, served byte-for-byte as you uploaded it.
Or with plain curl — no account needed
curl -X POST https://ship.page/deploy \
-H "Content-Type: text/html" \
--data-binary @index.htmlThe response is JSON with your live URL. A folder instead of a single file? Zip it and send Content-Type: application/zip instead — an index.html at the zip root becomes the homepage.
What free includes
- Single HTML files up to 10 MiB — inline CSS, JS, images and CDN references all work
- Zips up to 25 MiB and 100 files: whole folders unpack at the subdomain root, so relative links just resolve
- 30 days online, no account and no card — claim the page for free to stretch that to 90 days
- Byte-for-byte serving: nothing injected, no branding, no scripts added to your HTML, ever
- Public but unlisted: an unguessable URL, noindex headers, and no public directory of uploads
What runs here — and what doesn't
This is static hosting in the literal sense: HTML, CSS, JavaScript, images, fonts, PDFs. Client-side JavaScript runs, including anything your page pulls from a CDN. Server-side code does not — no PHP, no Node, no database, no server-rendered WordPress or Next.js routes. If it opens from a double-click on your disk, it works here.
Forms need their own backend or a form service with CORS configured; the page itself will load and run fine either way.
When free stops being enough
The free link is for sharing something now. Paid plans exist for when the page has a job: no expiry, a named URL that redeploys in place, password protection for visitors, bigger zips (100 MiB, 900 files per request) and higher rate limits. Upgrade when the link needs to outlive the moment.
Questions
Is it actually free?
Yes. Uploading without an account costs nothing and asks for no card: a single HTML file up to 10 MiB, or a zip up to 25 MiB, live for 30 days. Claiming the page with a free login extends it to 90 days from claiming. Paid plans exist for permanent, named and password-protected pages — that's the whole business model.
Do I need to sign up or log in?
No account, no password, no OAuth dance. The uploader asks for an email address only so a backup claim link can reach your inbox — nothing to log into, nothing to remember.
Will my page show up on Google?
Every page sends X-Robots-Tag: noindex, nofollow, and there is no public directory of uploads. That is a request, not a lock: anyone holding the link can open and forward it. Don't upload secrets; paid plans add real password protection.
What are the limits?
One HTML file up to 10 MiB per upload. Zips up to 25 MiB compressed, 100 files and 100 MiB unpacked. Links live 30 days, or 90 once claimed. A paid plan raises the caps to 100 MiB zips and 900 files per request, with no expiry by default.
Can I update the page after uploading?
Free uploads are immutable: upload again, get a new link. For a page that changes in place, a paid named deployment replaces content at the same URL on every upload — from the dashboard, the API or the GitHub Action.
Can I use my own domain?
Free pages live on their own unguessable subdomain. Team plans add vanity hostnames; bringing a fully custom domain is a paid feature — check the pricing section for the current shape.
Keep reading
- Hosting a whole folder? The zip route
- One HTML file, one POST, one URL — the API end to end
- Coming from Netlify Drop? The honest comparison
- API docs — every deploy option
The file is the deploy
No account, no key, no project. One upload and the URL is live for 30 days — claim it to keep it longer.