ProductTemplatesDocsBlogChangelogPricingShip Week Log In Deploy a site

Documentation

Ship a static site
in under a minute.

type: how-to · last_updated: 2026-07-20 · related: /product.html, /pricing.html

Getting started

Triangle turns a folder of static files into a live URL. There's nothing to install and no build server to configure. The fastest path:

1. Open the dashboard  →  /dashboard.html
2. Drag a folder, a single .html file, or a .zip onto the page
3. Name the project and press Deploy ▲
4. Watch the build log, then click your live URL
💡Everything static works: hand-written HTML, a framework's /dist export, or a design tool's export. If there's an index.html, it just works.

Three ways to deploy

Drop, Import, and Starter all converge on the same build-log theater and success beat. Pick by where your code lives:

 DropImportStarter
Best forA folder you already haveAn existing Git repoStarting from scratch
Needs GitNoYesNo
CreatesA new deploymentA wired projectA copy you own
Build stepAuto-detectedEditable presetsPre-configured
Time to live~2s~2s~2s
💡Drop is the real hero flow in this reference build. Import is shown in demo mode — the auto-detected preset fields are there, but the Git connection is simulated.

The build log

Every deploy streams a live monospace log, sectioned by phase — clone → install → build → upload — with the tail always pinned to the newest line and a timestamp on every entry. Statuses move Queued → Building → Ready (or Error, which lands you on diagnostics, not a dead end).

Secret masking. Any environment value 32 characters or longer that appears in the log is automatically replaced with [REDACTED]. Common token shapes (sk-…, ghp_…, AKIA…) are masked regardless of length.

07:44:21  Detected framework: Static
07:44:21  API_KEY: value ≥32 chars → [REDACTED]
07:44:22  ▲ my-site-lucid8k2.ship.now
07:44:22  Deployment completed ✓

Instant rollback

Rolling back repoints your production alias at a previous deployment. It's instantaneous because nothing rebuilds — the files already exist on the edge.

Dashboard → Overview → Production Deployment tile
  → Instant Rollback
  → confirm current vs. previous
  → Confirm Rollback

The rolled-back state is sticky: automatic production assignment turns off (a new push won't silently overwrite the rollback) and an Undo Rollback button appears on the tile. Hobby can roll back to the previous deployment; Pro to any deployment ever aliased to production.

If your site talks to an external API whose schema changed, an older deployment may skew against it. Rollback restores files, not third-party state.

Custom domains

Custom domains work on every plan, including Hobby. Point a domain at a deployment by adding it in Project Settings and creating the DNS record we show you. The default *.ship.now subdomain always keeps working alongside it.

💡For teams, custom domains plus rollback-to-any and preview deployments are the usual reason to move to Pro — but the domain itself is never paywalled.

Starters

A starter is a real, self-contained static site plus a one-click deploy. Deploying one copies it into your own space and runs the same build — you own the code from second one. Browse them in the gallery.

Limits & the stop-line

The honest boundaries of a static host:

  • Static only. No serverless functions or server runtime — this is the stop-line. Client-side JS is fine; server code is not.
  • File size. Up to 20 MB per file in a single upload.
  • Build timeout. Builds hard-stop at 45 minutes (static deploys finish in seconds).
  • Build cache. Up to 1 GB retained ~1 month for fast rebuilds.
Need an API route or database? A static host is the wrong tool. We'd rather say so than fake it.

The .md twin

Every docs page is also served as raw markdown — append .md to any docs URL for the agent-readable source, complete with YAML frontmatter (type, last_updated, related). Our docs are built for humans and LLMs alike.

GET /docs.md
---
type: how-to
last_updated: 2026-07-20
related: [/product, /pricing]
---
# Ship a static site in under a minute …

Docs are nice. Shipping is nicer.

You've read enough. Drag a folder and get your live URL.

Open the dashboard Browse templates