Skip to content

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

Surgeship.page
Account requiredYes: email and password in the terminal, or Google/GitHub loginNo: upload in the browser or run one curl with no account or key
How you uploadCLI (requires Node.js 18+ and npm) or HTTP API with account tokensBrowser (file, ZIP, folder or pasted HTML), curl, MCP or GitHub Action
BuildsNone: upload static files from a folderNone: upload finished static files, live in seconds
Size and file limitsUp to 10,100 files and 450 MB per projectFree: 10 MB HTML, 25 MB ZIP (100 files, 100 MB unpacked). Pro: 100 MB ZIP, 10,000 files
Link lifetimeNo expiry; stays live until you run surge teardown30 days free, 90 days if claimed; no expiry on Pro ($4/mo)
Custom domainsFree with managed SSL certificatesNot offered; Team ($19/mo) includes a vanity subdomain
Password protectionSurge Professional ($30/mo) via an AUTH filePro ($4/mo) and Team ($19/mo), 8 to 128 characters
First paid plan$30/mo (Surge Professional)$4/mo (Pro)
Updating a pageRun surge again on the same subdomain to replace itFree gives a new URL each upload; Pro ($4/mo) updates at the same URL
URL privacyChosen subdomain (your-name.surge.sh)Unguessable subdomain, noindex header, no public list of uploads
Routing and 404sClean URLs, 200.html for single-page apps, custom 404.htmlEvery 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

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

free, no account, live for 30 days.

Shipping…

or one curl command

curl -X POST https://ship.page/deploy \
  -H "content-type: text/html" \
  --data-binary @index.html