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.
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.
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.
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.
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.
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.
Feature Flags
Build-time feature flags via environment variables. Features not configured are excluded from the bundle entirely. See src/config/features-config.ts.
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.
Web Workers
Pre-configured TypeScript web worker pipeline. Source files in src/workers/ build to public/workers/ automatically.
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.
Caching & Rate Limiting
Redis-based caching and rate limiting via Upstash. API rate limiting (configurable per-route), distributed caching, edge caching.
Error Handling
Structured error services, validation service, global and component-level error boundaries, server action error handling with toast notifications.