Skip to content

No signup · One curl · Live in seconds

Throw HTML at an API. Get a live URL back.

Deploy a single HTML file or a whole static build with one curl — no account, no config. Every drop lands on its own unguessable subdomain, live worldwide in seconds.

Try it live

you@laptop — deploy anything

$ curl -X POST https://ship.page/deploy \
    -H "Content-Type: text/html" \
    --data-binary @report.html

Example response: # 201 Created — your drop is live:

https://vast-juice-c2dse08p.shipped.page/

Ship zone

Tap to pick an .html file or a .zip of your build.

Free drops: zip up to 25 MB · live for 7 days · no account needed

How it works

Three steps, zero signups

1

Ship it

POST your HTML or zip to https://ship.page/deploy — or just drop it above.

2

Catch the URL

You get https://<two-words-tail>.shipped.page/ — root-mounted and unguessable (~62 bits of entropy).

3

Share it

Send the link anywhere; free drops self-destruct in 7 days.

Features

Everything is a flag on one endpoint

No dashboards required. Read the ten things below, then never think about hosting again.

API-first

One endpoint, three body formats: raw HTML, JSON multi-file (binaries as base64), or a zip — with the root directory auto-stripped so dist/ archives just work.

text/htmlapplication/jsonapplication/zip

Own subdomain per drop

Every drop mounts at the root of its own subdomain. Absolute paths like /app.js and /styles.css just work — no base-path rewrites, ever.

GET /app.js  200

Unguessable URLs

Sharing IS the access control: ~62 bits of entropy per URL. Anyone with the link can view — no login — and nobody without it will find it.

Custom TTL

Choose a lifetime with ?ttl= — minimum 60 seconds. Free drops cap at 7 days; subscribers go unlimited.

POST /deploy?ttl=3600
Pro

Named drops / preview channels

Deploy with ?name=pr-42 and every redeploy replaces the content while the URL stays put — instant preview channels.

POST /deploy?name=pr-42
Team

Vanity subdomain

Your team's name on every preview your CI throws.

acme--pr-42.shipped.page

GitHub Action

Two lines of YAML and every CI run ships a live preview.

- uses: bitgate/ship-page-action@v1
  with: { path: dist/ }
bitgate/ship-page-action →
Pro

Append API

Deploy now, add files later — grow a single drop to 10,000 files without re-uploading what's already there.

Edge-cached worldwide

Drops are served from edge caches around the planet — first paint is fast from anywhere.

No tracking of viewers

Your viewers are nobody's product: no cookies, no fingerprinting, no analytics injected into your pages.

The killer use case

Your CI reports deserve a URL, not an artifact zip.

Coverage reports, Playwright traces, Storybook builds, bundle-analyzer output — publish them as live pages your team can actually click from the PR.

  • Included: Runs right after your build step — no config beyond a path
  • Included: The live URL lands in your job summary and PR
  • Included: Previews self-destruct on whatever schedule you set

.github/workflows/ci.yml

- uses: bitgate/ship-page-action@v1
  with: { path: playwright-report/ }

No Action? One line of curl drops the link straight into your job summary:

$ curl -sX POST https://ship.page/deploy -H 'Content-Type: text/html' --data-binary @report.html >> "$GITHUB_STEP_SUMMARY"

Pricing

Free to ship. Cheap to keep.

Deploys are anonymous on every plan — pay only when you want drops that stick around.

Free

$0forever

For drive-by deploys

  • Drops live 7 days
  • 25 MB zip (100 MB decompressed)
  • 100 files per request
  • Anonymous deploys — no account, ever
Just ship it
Most popular

Pro

$4/ month

For drops that stick around

  • Everything in Free
  • Drops never expire
  • Any TTL — 60 s to forever
  • Named drops / preview channels
  • 100 MB zip (400 MB decompressed)
  • 900 files per request · append up to 10,000
  • 120 deploys per minute
  • API keys

Team

$19/ month

Your name on every preview

  • Everything in Pro
  • Vanity subdomain: acme--*.shipped.page

Prices charged via Stripe · cancel anytime in the billing portal.

FAQ

Asked often enough

Anyone with the link — and nobody without it: every URL carries ~62 bits of entropy, so guessing one is a one-in-4.6-quintillion shot.