Supported Frameworks
Shipyard auto-detects your framework and configures the build pipeline accordingly.
Detection order
When you run shipyard init, the CLI checks for framework-specific config files, then falls back to package.json dependencies:
- Look for config files (
astro.config.*,next.config.*, etc.) - Check
package.jsondependencies for framework packages - Check for
index.html(static site) - Default to
unknown
Frameworks
Astro
- Detected by
astro.config.{ts,mjs,js}- Build command
npm run build- Output directory
dist/- Runtime image
- Node.js (SSR) or Static (Caddy)
Astro sites with SSR output use the Node.js runtime. Static output mode uses the Caddy runtime for optimal performance.
Next.js
- Detected by
next.config.{ts,mjs,js}- Build command
npm run build- Output directory
.next/- Runtime image
- Node.js
Next.js apps run as standalone Node.js servers. App Router and Pages Router both supported.
Hono
- Detected by
hono in package.json dependencies- Build command
npm run build- Output directory
dist/- Runtime image
- Node.js
Hono API servers are built with tsup/esbuild and run as Node.js applications.
Vite
- Detected by
vite.config.{ts,js}- Build command
npm run build- Output directory
dist/- Runtime image
- Static (Caddy)
Vite-based SPAs (React, Vue, Svelte) are served as static files via Caddy.
Remix
- Detected by
remix.config.{ts,js}- Build command
npm run build- Output directory
build/- Runtime image
- Node.js
Remix apps run as Node.js servers with the built-in HTTP server.
Static
- Detected by
index.html in project root- Build command
(none)- Output directory
./- Runtime image
- Static (Caddy)
Plain HTML/CSS/JS sites are served directly by Caddy. No build step needed.
Custom build configuration
You can override the detected defaults by editing shipyard.json:
{
"projectId": "abc123",
"name": "my-app",
"framework": "vite",
"buildCommand": "pnpm build:production",
"outputDirectory": "build/client"
}Runtime images
Shipyard uses two runtime images for Fly.io Machines:
| Image | Used for | Base |
|---|---|---|
runner-static | Static sites, Vite SPAs | Caddy Alpine |
runner-node | Next.js, Astro SSR, Hono, Remix | Node.js Alpine |