Configuration

How Shipyard configures your project with shipyard.json.

shipyard.json

When you run shipyard init, a shipyard.json file is created in your project root. This tells the CLI how to build and deploy your app.

shipyard.json
{
  "projectId": "abc123",
  "name": "my-app",
  "framework": "astro",
  "buildCommand": "pnpm build",
  "outputDirectory": "dist"
}

Fields

FieldTypeDescription
projectIdstringUnique project identifier (auto-generated)
namestringProject slug used in URLs (e.g. my-app.shipyard.wtf)
frameworkstringDetected framework: astro, next, hono, vite, remix, static
buildCommandstringCommand to build your app (e.g. pnpm build)
outputDirectorystringDirectory containing the build output to deploy

Framework defaults

If you don't specify buildCommand or outputDirectory, Shipyard uses defaults based on the detected framework:

FrameworkBuild commandOutput directory
Astronpm run builddist
Next.jsnpm run build.next
Hononpm run builddist
Vitenpm run builddist
Remixnpm run buildbuild
Staticnone.

Auth configuration

Authentication credentials are stored separately in ~/.shipyard/auth.json. This file is managed by shipyard login and shipyard logout.

~/.shipyard/auth.json
{
  "token": "shp_abc123...",
  "api_url": "https://api.shipyard.wtf"
}

You can override the API URL per-command with --api-url or by setting the SHIPYARD_API_URL environment variable.

Environment variables

VariableDescription
SHIPYARD_API_URLOverride the default API endpoint
SHIPYARD_TOKENUse an API token instead of the stored credential (useful for CI/CD)

Next steps