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

    Features

    Shipkit is a production-ready Next.js starter with authentication, payments, CMS, email, analytics, and more. Everything is feature-flagged; if the env var isn't set, the feature disables cleanly.

    Authentication

    Multi-provider auth powered by NextAuth.js v5. Supports GitHub, Google, Discord, Twitter, GitLab, Bitbucket, email magic links, credentials (email/password via Payload CMS), and guest access. Includes RBAC, admin roles, and session management.

    Authentication guide | Integration docs

    Payments

    Three payment providers: Lemon Squeezy, Stripe, and Polar. Unified payment service handles checkout URLs, webhook processing, subscription management, and admin payment dashboards across all providers.

    Payments guide | LemonSqueezy | Stripe | Polar

    CMS

    Dual CMS system. Payload CMS v3 for structured content (pages, FAQs, features, testimonials) with a self-hosted admin panel at /cms. Builder.io for visual drag-and-drop page building. Both share a unified routing system with automatic fallback.

    CMS guide | Visual Builder guide | Payload integration

    Database

    PostgreSQL with Drizzle ORM. Type-safe queries, automatic migrations, connection pooling, schema prefix support for multi-tenancy. Neon recommended for hosting.

    Database guide

    Email

    Transactional and marketing emails via Resend. React Email templates, DKIM/SPF support, audience management. Used for auth magic links, waitlist notifications, and custom emails.

    Email guide | Resend integration

    Analytics

    PostHog (product analytics, session recording, feature flags, A/B testing), Umami (privacy-focused), and DataFast (revenue attribution). All optional.

    Analytics guide | Integration docs

    AI

    Browser-based AI with SmolLM via WebGPU (runs entirely in-browser, no server). Cloud AI support for OpenAI and Anthropic. Demo components included.

    AI guide

    Storage

    File uploads via AWS S3 or Vercel Blob. Presigned URLs, image optimization with Sharp, CDN integration. Configurable per-collection in Payload CMS.

    Storage guide | S3 integration | Vercel Blob

    Haptics

    Native-feeling haptic vibration feedback on mobile web. Powered by web-haptics — works on Android via navigator.vibrate() and iOS Safari via the checkbox switch trick. 18 interactive components ship with haptics out of the box. Disable globally with NEXT_PUBLIC_FEATURE_HAPTICS_ENABLED=false.

    Haptics guide

    Component Registry

    Shipkit features are available as installable shadcn registry blocks. Add auth, blog, docs, CMS, or FAQ to any Next.js project with npx shadcn add @shipkit/faq. Six feature blocks, three shared infrastructure items, and seven standalone UI components.

    Registry guide

    UI Components

    125+ shadcn/ui components built on Radix UI. Includes custom primitives (responsive modal, view-transition links, error boundaries), animated blocks (beams, bento grid, testimonials), and multiple loader styles.

    Components reference

    View Transitions

    Smooth page transitions using the LinkWithTransition component. Drop-in replacement for Next.js Link.

    import { Link } from "@/components/primitives/link-with-transition";
    
    <Link href="/about">About</Link>;
    

    Theme System

    Dark/light mode with ThemeToggle and ThemeChooser components. CSS variables for consistent theming across all components.

    Dynamic Slots

    Intercepting routes for modal-like experiences. Content renders inline or as a modal depending on navigation context.

    Waitlist

    Pre-launch email collection with a signup form, database storage, Resend email notifications, admin dashboard, and duplicate prevention.

    Waitlist guide

    Feature Flags

    Build-time feature flags via environment variables. Features not configured are excluded from the bundle entirely. See src/config/features-config.ts.

    Feature flags guide

    Admin Dashboard

    Role-based admin panel. Admin status determined by email config (ADMIN_EMAIL), database role, RBAC permissions, or Payload CMS status. Admin routes protected at the layout level.

    DevTools

    Development-only tools: Tailwind breakpoint indicator, font selector, live preview. Enabled via ENABLE_DEVTOOLS=true.

    DevTools guide

    Web Workers

    Pre-configured TypeScript web worker pipeline. Source files in src/workers/ build to public/workers/ automatically.

    Web Workers guide

    Multi-Zone Architecture

    Deploy separate Shipkit installations under one domain (e.g., /docs, /blog, /ui, /tools). Each zone is a full app with shared auth and consistent design.

    Multi-zone guide

    Caching & Rate Limiting

    Redis-based caching and rate limiting via Upstash. API rate limiting (configurable per-route), distributed caching, edge caching.

    Caching guide

    Error Handling

    Structured error services, validation service, global and component-level error boundaries, server action error handling with toast notifications.

    Error handling guide

    Component Registry

    All Shipkit features are available as installable shadcn registry blocks. Start from bones and add features incrementally with npx shadcn add @shipkit/<block>. 30 blocks available covering auth, payments, blog, docs, CMS, analytics, email, admin, settings, and more.

    Registry guide