Shipkit
DocsFeaturesPricing
DocsFeaturesPricing

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)

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

    Install

    npx create-shipkit my-app
    # or
    bunx create-shipkit 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 upstream remote to https://github.com/lacymorrow/shipkit.git
    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