Shipyard Documentation

Deploy web apps to your own infrastructure from the command line.

What is Shipyard?

Shipyard is a deployment CLI built in Rust. It builds your web app locally, uploads the artifact to S3 storage, and provisions a Fly.io Machine to serve it. Think of it as a self-hosted alternative to Vercel's CLI — you own the infrastructure.

How it works

  1. Build — Runs your framework's build command locally (e.g. pnpm build)
  2. Package — Creates a gzipped tarball of the output directory
  3. Upload — Uploads the artifact to S3-compatible storage via presigned URL
  4. Provision — Spins up a Fly.io Machine with the right runtime image
  5. Route — Caddy reverse proxy assigns a URL with automatic TLS

Every deployment gets a unique preview URL (e.g. https://xk9m2p.shipyard.wtf). When you're ready, promote it to production with shipyard deploy --prod.

Supported frameworks

Shipyard auto-detects your framework from config files and package.json:

FrameworkDetectionDefault output
Astroastro.config.*dist/
Next.jsnext.config.*.next/
Honohono in depsdist/
Vitevite.config.*dist/
Remixremix.config.*build/
Staticindex.html./

Next steps