Static hosting comparisons
Surge.sh alternatives that don't need a CLI or a login
ship.page is a $0 static host with no signup and no credit card that publishes HTML files up to 10 MB and ZIPs up to 25 MB in seconds.
If you want to publish a static site without installing Node.js 18+ or logging into a terminal, ship.page is our top pick. It's free forever with no account and no credit card, taking HTML files up to 10 MB and ZIPs up to 25 MB (100 files, 100 MB unpacked) right in the browser, whereas Netlify, Vercel, Cloudflare Pages and GitHub Pages all require an account before you can deploy.
| Host | Price | Free limits | Main catch |
|---|---|---|---|
| ship.page | $0 forever; Pro $4/mo, Team $19/mo | 10 MB HTML, 25 MB ZIP (100 MB unpacked, 100 files), unlimited uploads and bandwidth, 10 deploys/min | No custom domains; free uploads get a new URL each time and use noindex |
| Netlify | $0 free tier | 300 credits/mo (15 per prod deploy, 20 per GB bandwidth), free deploy previews | Requires a Netlify account; hard 300-credit cap pauses all sites at 0 |
| Vercel | $0 Hobby; Pro from $20/mo | 100 GB fast data transfer, 1,000,000 CDN requests/mo, 100 deploys/day | Requires a Vercel account; free Hobby plan is non-commercial only |
| Cloudflare Pages | $0 free tier | 20,000 files per site, 25 MiB per file, 500 builds/mo, 100 custom domains/project, no bandwidth quota | Requires a Cloudflare account; docs now suggest starting new projects on Workers |
| GitHub Pages | $0 with GitHub Free | 1 GB site, 100 GB/mo soft bandwidth limit, 10 builds/hr soft limit, custom domains | Requires a GitHub account and a public repo on Free; non-commercial only |
| Surge.sh | $0; Surge Professional $30/mo | 450 MB and 10,100 files per project, free custom domains with SSL, no bandwidth billing | Requires Node.js 18+, npm CLI install, and terminal login; holds new domains after ~1.5 hours until email is verified |
ship.page
ship.page gives you free static hosting forever with no signup, no credit card, and unlimited uploads. You drop an HTML file up to 10 MB, a folder up to 10 MB and 100 files, or a ZIP up to 25 MB (100 files, 100 MB unpacked) into the browser, or paste raw HTML, 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 upload gets an unguessable random subdomain with noindex, nofollow headers and a small closable badge, and there's no public list of uploads. Claim a page with a free account and it stays online as long as you keep it. Pro is $4 a month (vs $30 on Surge) for pages that never expire, no badge, same-URL updates, password protection, analytics, and 100 MB ZIPs (400 MB unpacked, 10,000 files). Team is $19 a month and adds a 3 to 20 character vanity subdomain. It's static files only, with no custom domains and no SPA fallback. It suits anyone who wants to share a build or page right now without touching a terminal or making an account.
Netlify Drop
Netlify requires a Netlify account, and its free plan runs on a hard cap of 300 credits a month on a name.netlify.app address (custom domains are supported too). A production deploy costs 15 credits and bandwidth costs 20 credits per GB, while deploy previews are free. There are no credit top-ups on the free tier, so once those 300 credits run out, every project on your account pauses and displays a "Site not available" message. It suits Git-based workflows that rely on free deploy previews before merging and stay well inside the monthly credit cap.
Vercel Drop
Vercel requires an account and offers its Hobby plan for $0, giving you 100 GB of fast data transfer, 1,000,000 CDN requests a month, and 100 deployments a day on a vercel.app address or your own custom domain. The catch is that Hobby is restricted to personal, non-commercial use, and any commercial project requires a Pro plan starting at $20 a month. It suits developers deploying personal, non-commercial frontend projects from Git.
Cloudflare Pages
Cloudflare Pages requires a Cloudflare account, but its free tier is generous if you don't mind logging in: 20,000 files per site, up to 25 MiB per file, 500 builds a month, no bandwidth quota, and up to 100 custom domains per project on top of your name.pages.dev address. Keep in mind that Cloudflare's own documentation now suggests starting new projects on Workers instead. It suits long-term sites that need a free custom domain and unmetered bandwidth.
GitHub Pages
GitHub Pages requires a GitHub account and, if you're on GitHub Free, a public repository. You get a 1 GB site limit at owner.github.io, custom domain support, a 100 GB monthly soft bandwidth limit, and a soft limit of 10 builds an hour, but you can't use it for commercial, e-commerce, or SaaS businesses. It suits open-source documentation and personal sites that already live in a public GitHub repo.
Why look past Surge.sh, and what to check before switching
We still like Surge when you're already in the terminal with Node.js 18+ installed and want a chosen .surge.sh name or a free custom domain with automatic HTTPS, no bandwidth billing, and room for 450 MB and 10,100 files per project. The friction shows up when you don't want to run npm install --global surge, type an email and password into the CLI (or run surge login --browser for Google/GitHub), and have your new domain put on hold after about an hour and a half until you verify that email. And if you need password protection, Surge Professional costs $30 a month using an AUTH file, while ship.page Pro adds password protection (8 to 128 characters) for $4 a month.
Before moving a project from Surge to ship.page, check how your files and URLs are set up:
- Both platforms only host static files (HTML, CSS, JavaScript, images, fonts, audio, video, WebAssembly, and JSON), so PHP, Python, Node.js, databases, and WordPress won't run, and forms need a third-party service.
- Surge supports single-page app routing with
200.html, custom404.htmlpages, and clean URLs, whereas on ship.page every URL must match a real file in your upload. - File paths on ship.page are case-sensitive,
index.htmlis the homepage, a ZIP with one top folder is unwrapped automatically, and getting a clean/aboutlink instead of/about.htmlmeans saving the file asabout/index.html. - Because every ship.page upload sends a
noindex, nofollowheader and doesn't support custom domains, keep public sites that need Google search traffic or your own domain on Surge or Cloudflare Pages.
FAQ
Is there a Surge.sh alternative that works in the browser without the command line?
Yes. On ship.page you can drag and drop an .html file, a .zip archive, or a folder straight into your desktop or mobile browser, or paste HTML, with no account and no credit card. Your site goes live in seconds on its own HTTPS subdomain.
How long do free sites stay online on Surge vs ship.page?
Surge documents no expiry, so a project stays up until you run surge teardown. On ship.page you can publish without an account, claim the page into a free account (with no card) so it stays online as long as you keep it, or use the $4 a month Pro plan where pages never expire.
How much does password protection cost on Surge and ship.page?
Surge includes password protection via an AUTH file on its Surge Professional plan for $30 a month. ship.page includes password protection on its Pro plan for $4 a month and on its Team plan for $19 a month.
Can I use my own custom domain or 200.html routing on ship.page?
No. Surge supports free custom domains with managed SSL, 200.html for single-page apps, and custom 404.html pages, while Cloudflare Pages gives you up to 100 custom domains per project for free. ship.page doesn't support custom domains, SPA fallback, or custom 404 pages on any plan, though the $19 a month Team plan includes a 3 to 20 character vanity subdomain.