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.
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.