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