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:

  1. Look for config files (astro.config.*, next.config.*, etc.)
  2. Check package.json dependencies for framework packages
  3. Check for index.html (static site)
  4. 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:

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:

ImageUsed forBase
runner-staticStatic sites, Vite SPAsCaddy Alpine
runner-nodeNext.js, Astro SSR, Hono, RemixNode.js Alpine

Next steps