Shipkit
DocsFeaturesPricing
DocsFeaturesPricing

Command Palette

Search for a command to run...

Shipkit DocumentationBuild memory optimizationDevelopment GuideEnvironment VariablesError HandlingFile StructureMiddlewareRebranding Guide

Vercel Deployment Checks

Development GuideCLIDependency UpdatesDevToolsFeature FlagsAI PromptsSetup RequirementsSupply chaintRPCWeb Workers

FeaturesAIAnalytics IntegrationAuthenticationCMSDatabaseEmailHapticsPaymentsComponent RegistryStorageUIVisual BuilderWaitlist Feature

Quick StartDeploymentEnvironment VariablesFile StructureSetup Wizard

Caching & Rate LimitingContent ManagementError HandlingMarkdown and MDXMiddlewareProxy-Safe Server ActionsRebranding GuideWebhook Security Implementation GuideMulti-Zone ArchitectureVercel Deployment

IntegrationsPayload CMSDataFast Analytics IntegrationGoogle Analytics IntegrationGoogle Tag Manager IntegrationPostHogStatSig IntegrationUmami Analytics IntegrationAuth.js IntegrationBetter AuthClerkStack Auth IntegrationSupabase Authentication IntegrationBuilder.io IntegrationPayload CMS IntegrationAWS S3 IntegrationResend Email IntegrationUpstash Redis IntegrationVercel Blob IntegrationLemon SqueezyPolarStripe

API RoutesComponentsAPI Route SnippetsAuthentication SnippetsComponent SnippetsForm Handling SnippetsSnippets Introduction

CLI (create-shipkit-app)

A CLI tool to scaffold new ShipKit projects, sync upstream changes, and deploy.

Install

npm create shipkit-app@latest my-app
# or
bun create shipkit-app@latest my-app

Commands

shipkit create [name]

Scaffold a new project from the ShipKit template.

shipkit create my-app
shipkit create my-app --yes          # skip prompts
shipkit create my-app --no-install   # skip bun install
shipkit create --template user/repo  # custom template

What happens:

  1. Creates a new GitHub repo from the ShipKit template (falls back to git clone if gh auth fails)
  2. Sets the upstream remote to the template you chose (https://github.com/shipkit-io/bones.git by default)
  3. Grafts upstream history with --allow-unrelated-histories
  4. Installs dependencies with bun install

After creating, run the rebrand script to rename everything:

cd my-app
bunx tsx scripts/rebrand.ts --name "My App" --domain "myapp.com" --creator-name "Your Name"

shipkit sync

Pull upstream ShipKit changes into your project.

shipkit sync            # creates a PR branch with upstream changes
shipkit sync --direct   # merge directly into current branch
shipkit sync --yes      # skip prompts

shipkit deploy

Deploy to Vercel.

shipkit deploy        # interactive
shipkit deploy --open # open Vercel import page in browser

Rebrand Script

Not a CLI command, but part of the post-create workflow. See the Rebranding Guide for full details.

bunx tsx scripts/rebrand.ts --name "MyApp" --slug "my-app" --domain "myapp.com" --creator-name "Jane Smith"
bunx tsx scripts/rebrand.ts --dry-run   # preview changes

Updates src/config/site-config.ts, .env.example, and package.json with your branding.

Development

The CLI lives in its own repo: lacymorrow/shipkit-cli.

git clone https://github.com/lacymorrow/shipkit-cli.git
cd shipkit-cli
bun install
bun run build    # tsup build -> dist/
bun run dev      # watch mode

Key Files

FilePurpose
src/index.ts (shipkit-cli)Entry point, command definitions
src/create.ts (shipkit-cli)Project scaffolding logic
src/sync.ts (shipkit-cli)Upstream sync logic
src/deploy.ts (shipkit-cli)Vercel deployment logic
scripts/rebrand.ts (this repo)Post-create branding script