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

    Quick Start

    Deploy to Vercel (Fastest)

    Deploy with Vercel

    Click the button, connect your GitHub, and Vercel handles the rest. You'll have a live site in ~2 minutes.

    After deploy, set these environment variables in your Vercel dashboard:

    DATABASE_URL=           # PostgreSQL connection string (Neon recommended)
    AUTH_SECRET=            # Run: openssl rand -base64 32
    AUTH_URL=               # Your deployed URL (e.g. https://myapp.vercel.app)
    

    Local Development

    # Create a new project (clones template, sets upstream, installs deps)
    npx create-shipkit my-app
    cd my-app
    
    # Rebrand to your project
    bunx tsx scripts/rebrand.ts --name "My App" --domain "myapp.com" --creator-name "Your Name"
    
    # Configure environment
    cp .env.example .env.local
    # Edit .env.local with your DATABASE_URL and AUTH_SECRET
    
    # Start dev server
    bun dev
    

    Open http://localhost:3000.

    What You Get

    Out of the box, Shipkit includes:

    • Authentication with multiple providers (GitHub, Google, Discord, email, guest)
    • Database with Drizzle ORM + PostgreSQL
    • Payments via Lemon Squeezy, Stripe, or Polar
    • CMS with Payload CMS and/or Builder.io
    • Email via Resend with React Email templates
    • UI with 125+ shadcn/ui components, dark mode, view transitions
    • Analytics with PostHog, Umami, or DataFast
    • Admin dashboard with role-based access control
    • AI demos with OpenAI, Anthropic, and browser-based SmolLM

    Everything is controlled by feature flags. If an env var isn't set, the feature disables cleanly.

    First Customization

    Run the rebrand script to update all config references at once:

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

    See the rebranding guide for what gets updated and manual steps.

    Next Steps

    • Environment variables for full configuration
    • Deployment guide for production setup
    • Features overview for everything Shipkit includes
    • Setup wizard for post-deploy configuration
    • Rebranding guide for renaming everything