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
- Build — Runs your framework's build command locally (e.g.
pnpm build) - Package — Creates a gzipped tarball of the output directory
- Upload — Uploads the artifact to S3-compatible storage via presigned URL
- Provision — Spins up a Fly.io Machine with the right runtime image
- 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:
| Framework | Detection | Default output |
|---|---|---|
| Astro | astro.config.* | dist/ |
| Next.js | next.config.* | .next/ |
| Hono | hono in deps | dist/ |
| Vite | vite.config.* | dist/ |
| Remix | remix.config.* | build/ |
| Static | index.html | ./ |