Surge vs ship.page: an honest comparison
Surge is a command-line static host that gives you a chosen .surge.sh subdomain, free custom domains and no expiry once you install its npm package and create an account. ship.page needs no signup, no password and no credit card: upload an HTML file up to 10 MB, a ZIP up to 25 MB or a folder in your browser and get a live HTTPS website in seconds. Free ship.page links stay online for 30 days, or 90 days after a free claim.
Competitor facts verified against Surge in October 2026. Where they win, we say so.
Side by side
| Surge | ship.page | |
|---|---|---|
| Account required | Yes: email and password in the terminal, or Google/GitHub login | No: upload in the browser or run one curl with no account or key |
| How you upload | CLI (requires Node.js 18+ and npm) or HTTP API with account tokens | Browser (file, ZIP, folder or pasted HTML), curl, MCP or GitHub Action |
| Builds | None: upload static files from a folder | None: upload finished static files, live in seconds |
| Size and file limits | Up to 10,100 files and 450 MB per project | Free: 10 MB HTML, 25 MB ZIP (100 files, 100 MB unpacked). Pro: 100 MB ZIP, 10,000 files |
| Link lifetime | No expiry; stays live until you run surge teardown | 30 days free, 90 days if claimed; no expiry on Pro ($4/mo) |
| Custom domains | Free with managed SSL certificates | Not offered; Team ($19/mo) includes a vanity subdomain |
| Password protection | Surge Professional ($30/mo) via an AUTH file | Pro ($4/mo) and Team ($19/mo), 8 to 128 characters |
| First paid plan | $30/mo (Surge Professional) | $4/mo (Pro) |
| Updating a page | Run surge again on the same subdomain to replace it | Free gives a new URL each upload; Pro ($4/mo) updates at the same URL |
| URL privacy | Chosen subdomain (your-name.surge.sh) | Unguessable subdomain, noindex header, no public list of uploads |
| Routing and 404s | Clean URLs, 200.html for single-page apps, custom 404.html | Every URL must be a real file; no SPA fallback or custom 404 page |
Where Surge wins
- Free custom domains with managed SSL certificates, plus your choice of .surge.sh subdomain on the free plan. ship.page does not offer custom domains, and vanity subdomains require the Team plan ($19/mo).
- No expiry on free projects. Sites stay up until you run surge teardown, while free ship.page links last 30 days (or 90 days after claiming).
- Higher free size limits: up to 10,100 files and 450 MB per project, compared to 100 files and 25 MB (100 MB unpacked) on ship.page Free.
- Single-page app routing with a 200.html file, custom 404.html pages, clean URLs, and custom redirects or CORS on the $30/mo plan.
Where ship.page wins
- Browser uploader with no setup. Upload a single HTML file, a ZIP, a folder or pasted code from a computer or phone without installing Node.js or using a terminal.
- No account or token needed. A single curl request to https://ship.page/deploy publishes a site with no login or API key.
- Password protection costs $4/mo on ship.page Pro, compared to $30/mo on Surge Professional.
- Private by default: every link uses an unguessable subdomain and tells search engines not to index the page.
The short version
Choose Surge if you work in the terminal with Node.js installed and want a free, permanent site with your own custom domain or client-side routing via 200.html.
Choose ship.page if you want to drop an HTML file, ZIP or folder in the browser (or send one curl request from a script or AI tool) without creating an account, or if you want password protection for $4 a month instead of $30.
Questions
Can I upload to Surge from a browser without the command line?
No. Surge has no browser upload page; you must install the CLI with npm (which requires Node.js 18 or later) or use its HTTP API with account tokens. ship.page lets you upload files, ZIPs and folders directly in desktop and mobile browsers.
Does Surge require an account?
Yes. The first time you run the Surge CLI, it asks you to create an account with an email and password in the terminal, or sign in with Google or GitHub using surge login --browser. ship.page requires no account for either the browser uploader or the curl API.
How long do free Surge sites stay online?
Surge documents no expiry, so a project stays live until you remove it with surge teardown. Free ship.page links stay live for 30 days, or 90 days if you claim the page with a free login, and Pro ($4/mo) removes the expiry.
What are the file and size limits on Surge vs ship.page?
Surge allows up to 10,100 files and 450 MB per project. ship.page Free takes a single 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), while Pro ($4/mo) raises the limit to 100 MB ZIPs (400 MB unpacked) and 10,000 files.
How much does password protection cost on Surge and ship.page?
Surge includes password protection (using 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.
Can I use my own custom domain?
Surge supports custom domains with free managed SSL certificates on its free plan, plus your choice of .surge.sh subdomain. ship.page does not support custom domains on any plan; the Team plan ($19/mo) lets you pick a vanity subdomain of 3 to 20 characters.
Does ship.page support 200.html for single-page apps like Surge?
No. Surge uses a 200.html file for client-side routing and a 404.html file for custom not-found pages. On ship.page, every URL must match a real file in your upload, with no single-page-app fallback or custom 404 page.
Keep reading
- Free static site and HTML hosting compared: all seven hosts in one table
- GitHub Pages vs ship.page
- Netlify Drop vs ship.page
Judge it in ten seconds
Drop the file here, or keep it in the terminal — either way the URL is live for 30 days.
Drop your page here — get a live link
.zip, folder, or single .html — free, no account, live for 30 days.
or one curl command
curl -X POST https://ship.page/deploy \
-H "content-type: text/html" \
--data-binary @index.html