Shipvela CLI and deployment docs
Publish a built static site from your terminal, or start a build of your linked GitHub branch. Choose the path that matches your project.
Install the CLI and publish a local build
Use Node.js 22+ and install the versioned package below. The package is not published to the npm registry. Current Vite projects need Node 22.12+ on a supported release line; check your app’s own requirements.
npm install -g https://shipvela.com/downloads/shipvela-cli-0.3.0.tgz shipvela --version shipvela login # From your static React/Vite project npm run build shipvela publish dist --name my-site --spa --json
Login opens Shipvela in your browser. Sign in, compare the code with your terminal, then approve the request you started. Publish uploads the selected build directory, validates the archive and waits for the deployment job. Success returns its HTTPS URL; authentication alone is not a deployment.
On first publish, --spa creates a project with single-page routing and the CLI writes shipvela.json. Future publishes update that linked project. Use a folder with index.html for plain HTML without --spa; use out for a Next.js static export. Prebuilt Astro static output can also use this path.
Uploads support up to 50 MB and 5,000 files. Known environment files, credentials, dependencies and source maps are excluded. Symlinks and source-project roots are rejected. A secret already compiled into browser JavaScript remains public.
Build, publish and check a React/Vite siteManually deploy from GitHub
Choose Connect with GitHub to connect and select a repository you administer. You can also manage the connection at the top of Settings. The current GitHub path expects an npm project at repository root. Review the detected build command and output directory before publishing. Configure project lets you add optional environment variables before creation; saving the project does not deploy it. Existing projects use the Environment tab.
shipvela init --name my-project # Commit shipvela.json and your app changes, then push the linked branch shipvela deploy --wait --json shipvela status shipvela logs
Deploy builds committed, pushed files from GitHub. It does not upload uncommitted local edits. A Git push does not automatically start a deployment: use Publish project or Redeploy in the workspace, or run the CLI command.
The CLI checks your repository, branch, clean worktree and remote commit. --allow-remote explicitly skips these local checks and deploys the current remote branch; it never uploads local files. Inspect the returned job’s commit ID. For an existing project, use shipvela projects and shipvela link --project PROJECT_ID.
Use the CLI with coding agents and CI
Claude Code, Codex, Cursor and other tools with terminal access can use these same commands. No editor-specific plugin is required. --json writes a single result or error object to stdout, progress stays on stderr, and failures exit nonzero.
shipvela publish dist --name my-site --spa --json shipvela deploy --wait --json shipvela --help
For CI, create a scoped token in Settings → CLI & integrations and store it as SHIPVELA_TOKEN in the runner’s secret store. Set SHIPVELA_API_URL=https://shipvela.com there if needed. Never paste tokens into prompts or commit them. Read-only tokens cannot publish; deployment tokens cannot manage environment variables, domains, GitHub credentials or other tokens.
Tokens expire after 90 days. Revoke them in Settings or run shipvela logout. For headless login use shipvela login --no-browser and open the displayed link yourself; shipvela login --token-stdin accepts a token from a secret manager’s stdout. Do not pass the token as a command-line argument.
Supported output and deployment limits
CLI publishing serves prebuilt static HTML, CSS and JavaScript. It does not run an SSR server. The separate GitHub path supports compatible Next.js SSR versions 12–15 on paid plans. A current AI builder or framework is not automatically supported just because it uses React.
Shipvela does not provision a hosted database or general backend server. GitHub monorepos and non-npm package managers, automatic push deployments, pull-request previews and rollback are not included in this release. If a wait times out, run shipvela status before retrying; the job may still be running.
Manage custom domains and build environment variables in the project workspace. Follow the DNS and HTTPS steps, and keep private values out of Vite bundles.
Practical deployment guides
- Deploy a React and Vite site to production
- Deploy from Claude Code with the Shipvela CLI
- Deploy a GitHub repository manually
- Connect a custom domain and verify HTTPS
- Set Vite environment variables for production
- Fix React Router 404 errors after deployment
- Fix “Failed to fetch dynamically imported module” in Vite
- Next.js static export or SSR: choose before deploying
- Diagnose a failed Vite deployment from the first error
- A website launch checklist for your static React or Vite site
Your plan limits apply in the browser, CLI and CI.
Create your workspace