NextJS Starter
Auth, billing, teams, admin.
Lifetime access
$99
This kit, every update, and every future Shipkitt release.
Product brief
What you get
The Next.js starter you're looking at right now: auth, billing, teams, and admin, ready to ship on.
Launch manifest
Everything inside
Auth & accounts
9 includedbetter-auth with verified email, Google sign-in, and the account screens users expect.
- Email/password with verified addresses
- Sign-in is blocked until the address is confirmed, so you never build on an unverified email column.
- Google OAuth with trusted linking
- Signing in with Google folds into an existing password account instead of quietly creating a duplicate.
- Password reset and email change
- Both flows are wired end to end, including the emails that carry them.
- Active session management
- Users see every signed-in device and can revoke any one of them without touching the others.
- Linked accounts
- Connect and disconnect OAuth providers from the security page.
- Account deletion
- Type-to-confirm, with a confirmation email — not a button that fires on the first click.
- Roles, granted off the internet
- A user/admin role column, granted by a CLI script run against the database — never through the app. There is no HTTP path to privilege escalation.
- Ban, unban, and impersonation
- Support staff can act as a user to reproduce a bug, with a persistent banner and one click back out.
- Two-layer route gating
- A cookie fast-path in the proxy for redirects, and real session verification in the data-access layer where the data is. Neither is trusted on its own.
Organizations
5 includedMulti-tenant workspaces with invitations, roles, and per-org settings — the part that takes a month.
- Orgs with owner/admin/member roles
- Any user can create one, belong to several, and switch between them and their personal account.
- Email invitations
- Invite by address with a role, revoke a pending invite, and a real accept-invitation flow for the recipient.
- Member management
- Change a member's role or remove them, with the permission checks already in place.
- Org profile and logo
- Per-organization settings and an uploaded logo, scoped so one org can never read another's.
- Shared document shelf
- Private file uploads scoped to the organization, available to every member.
Billing
6 includedStripe subscriptions and one-time purchases, including the webhook edge cases nobody warns you about.
- Subscription plans in one file
- Tiers, monthly and annual pricing, and the gating rules all read from a single plans module.
- Checkout and customer portal
- Stripe-hosted, so card details never reach your servers and plan changes are self-serve.
- Invoices, trials, promo codes, tax
- An invoice list users can read, plus free trials, discount codes, and automatic tax behind config flags.
- Idempotent webhooks
- A claimed-events table makes replays a no-op. Stripe retries; this one does not double-charge or double-email.
- Plan gating helpers
- Ask whether an account has access rather than scattering tier comparisons through your features.
- A dunning banner
- Failed payments surface in the app instead of silently expiring the account.
Public API & webhooks
5 includedA versioned REST API with per-user keys, and signed outbound webhooks with a delivery log.
- Versioned /api/v1
- Bearer-key authentication instead of the session cookie, with two worked routes to copy from.
- Per-user API keys
- Users create their own, see the secret exactly once, and revoke it later. Each key is rate-limited on its own.
- User-managed webhook endpoints
- Your customers register their own URLs and subscribe each to the event types they care about.
- HMAC-signed deliveries
- Every payload is signed so the receiving end can prove it came from you.
- Delivery log with retries
- Status, attempt count, response code, and last error per delivery, with a redeliver button on the failures.
Files, notifications & email
5 includedDirect-to-S3 uploads, one notification dispatcher, and transactional email that already renders.
- Presigned S3/MinIO uploads
- Avatars, org logos, and documents go straight from the browser to storage — no file passes through your server.
- Storage URLs that never leak
- Downloads route through a stable app URL that redirects to a short-lived signed link, so bucket URLs stay private.
- One notify() dispatcher
- Always writes to the in-app bell, optionally emails too, honouring a per-user preference. Adding a notification is one call.
- In-app notification bell
- Polling rather than websockets — one fewer piece of infrastructure to run, and it survives a serverless deploy.
- Transactional email that works
- Resend plus React Email, with a finished template behind every email the app sends: welcome, verify, reset, invite, subscription changes, and more.
Marketing & content
6 includedThe public site: MDX content, real SEO, waitlist mode, and consent-gated analytics.
- MDX blog, changelog, and legal pages
- Content lives in the repo and is reviewed like code, with syntax highlighting built in. No CMS to pay for.
- SEO that is actually wired
- Sitemap, robots, canonical and OpenGraph metadata, and Article JSON-LD — not a TODO in the layout.
- Dynamic OG images
- Generated per page and per post, so shared links do not all look identical.
- Waitlist mode
- Flip a switch to gate signups, approve people from the admin panel, and export the list as CSV.
- Cookie consent and gated analytics
- A consent banner that genuinely withholds the analytics script until it is accepted.
- Landing, pricing, and contact pages
- Including a contact form with bot protection and a newsletter signup.
Admin back office
8 includedThe internal tool you would otherwise build twice: users, money, files, and an audit trail.
- Overview dashboard
- Real metrics from your own database, charted — not placeholder numbers.
- User management
- Search, inspect, and act on accounts with per-row actions including ban and impersonate.
- Subscription list
- See who is paying you, on what plan, and since when.
- Waitlist review
- Approve or reject signups and export the queue.
- File browser
- Every upload in the system, with its owner.
- Filterable audit log
- Sensitive account, org, and billing actions recorded with actor and target, filterable by action type.
- Feature-flag toggles
- Flip behaviour on and off from the UI, no deploy.
- Contact inbox
- Form submissions land somewhere you can read them.
Platform
7 includedFlags, an AI module, rate limiting, security headers, and error tracking — all optional, none crashing when off.
- Database-backed feature flags
- getFlag(key, default) with an admin toggle. No third-party flag service, no per-seat bill.
- AI module with cost logging
- An Anthropic SDK wrapper that records tokens and estimated USD per call, so your AI spend is visible from day one.
- Rate limiting on auth and actions
- Covering better-auth's endpoints and your own Server Actions, which most starters leave wide open.
- Security headers and bot protection
- CSP, HSTS, frame and referrer policy, plus optional Turnstile checks on signup and contact.
- Sentry, health check, analytics hook
- Error tracking on both server and client, an unauthenticated /api/health for uptime monitors, and one place to wire analytics.
- A design system, not a theme
- shadcn/ui on Base UI with a dark-first token set, a theme toggle, toasts, and mobile navigation already assembled.
- Optional means optional
- Google, Stripe, Resend, S3, Turnstile, Sentry, and AI each degrade to off when unconfigured. The app boots and builds with placeholder keys.
Developer experience
6 includedOne command to a running stack, tests that already pass, CI, and a doc per feature.
- Interactive setup CLI
- npm run setup brings up Postgres and storage, runs migrations, and seeds data. You are signed in minutes later.
- Docker Compose for local infra
- Postgres and MinIO, so nothing about local development depends on a cloud account.
- Tests you inherit rather than write
- Vitest unit tests, database-backed integration tests, and Playwright end-to-end coverage of auth, access control, and the marketing pages.
- CI and deployment
- A GitHub Actions pipeline and a Dockerfile using standalone output, plus a Vercel path that needs no config file at all.
- A documentation page per feature
- Each one covers what it does, how to configure it, how it works, how to extend it — and how to delete it, because you will remove features as often as you add them.
- Written to be handed to an agent
- The docs and conventions are self-contained, so a coding agent can work in this codebase without reverse-engineering it first.
Version archive
Releases
Every version stays available to buyers — you're never forced onto a newer one.