IsotopeKit

IsotopeKit

Ship SaaS from packages. Upgrade without merge hell.

Versioned @isotopekit/* for auth, orgs, billing, and agency — so your product stays yours when the kit moves.

For founders, agencies, and teams building with AI coding tools.

See why packages beat forks

Stable core. Packages you compose.

Pull what you need. Update with pnpm update.

coreconfig · db · logger · ui
domainauth · org · plans · billing
modulesadmin · agency · pricing
transportHono /api/v1

Why this kit

Typical kits fork. IsotopeKit composes.

Auth, orgs, billing, and agent docs ship as versioned packages — so you stop re-merging a starter every time upstream moves.

Ask AGENTS.md anything…

Agents ship faster — AGENTS.md, docs, Cursor skills

@isotopekit/authsemver
@isotopekit/billing↑ patch
@isotopekit/organizationsemver

Updates arrive as semver — not a fresh dump

Owner
Admin
Member
Billing

Org roles & teams — bill the workspace

Next.js
Auth
Hono

A stack your AI tools already know

Compose by tier — core · domain · modules · transport

BillingProvider

checkout · portal · webhooks · sync

DodoStripeRazorpayCashfree

Dodo ships built-in. Other providers via BillingProvider.

Swap billing providers without rewriting checkout

UI · pricing · org billingstable
@isotopekit/billing portsstable
Your provider adapterswap

Plans & entitlements stay put when providers change

apps/starter · composition root

Thin app you own — your routes stay yours

How it works

Four steps from empty app to upgradable SaaS.

Scaffold once. Compose packages. Ship. Then update with semver — without re-absorbing a forked starter.

  1. Scaffold a thin app

    Your product owns routes, env, and wiring. Packages stay env-free and testable.

    apps/starter is the shell. isotopekit.config.ts flips billing, admin, and agency. Product pages live in your app tree.

    Technical

    apps/starter · isotopekit.config.ts · lib/bootstrap/* · defineProductConfig

  2. Compose what you need

    Add versioned @isotopekit/* packages by tier — core, domain, modules, transport.

    Ship only the surfaces you need. Admin and agency are optional modules, not a forced mega-starter.

    Technical

    pnpm add @isotopekit/auth @isotopekit/organization @isotopekit/billing-ops …

  3. Ship production SaaS

    Auth, multi-tenant orgs, plans, hosted checkout, and agent-readable docs — already wired.

    Better Auth, org billing, entitlements, email, logging, and a portable Hono API. Your AI tools get AGENTS.md and _docs.

    Technical

    Better Auth · Drizzle · Hono · Pino · React Email · Cursor skills

  4. Upgrade by semver

    New kit releases bump packages. You don't re-merge a forked monorepo into your product.

    Extension points stay stable across minor and patch. Your routes and wires stay yours while the platform improves underneath.

    Technical

    pnpm update @isotopekit/* · Changesets · publint · deps:check

Package index

18 packages. Four tiers. One thin app.

Compose the layers you need. Leave Pro surfaces off until you want them. Updates ship as versioned packages — not another starter dump to merge.

  • core

    @isotopekit/config

    Env presets (core/auth/billing) — app extends via @/env

  • core

    @isotopekit/db

    Drizzle schema, createDb({ connectionString }), queries

  • core

    @isotopekit/types

    Shared types, NavItem, IsotopekitConfig, defineProductConfig

  • core

    @isotopekit/logger

    Pino createLogger({ level, logFile }) with request context

  • core

    @isotopekit/email

    createEmailService + injectable transport for tests

  • core

    @isotopekit/ui

    shadcn primitives, shared components, progress hooks

  • domain

    @isotopekit/identity

    Auth options, branding, org-type, session services

  • domain

    @isotopekit/auth

    Better Auth factory, session guards, createAuthClientForApp

  • domain

    @isotopekit/organization

    Portable workspace services, actions, loaders

  • domain

    @isotopekit/billing

    Billing contracts, org-status, read-models, ports

  • domain

    @isotopekit/plans

    configurePlans / getDefaultPlanId, entitlements math

  • domain

    @isotopekit/user

    Account settings, sessions, profile actions

  • modules

    @isotopekit/admin

    Platform operator shell — layouts take app { name, userHome }

  • modules

    @isotopekit/agency

    Agency hub shell, client allocation, white-label

  • modules

    @isotopekit/org-ui

    Org switcher, branding chrome, plan usage, member quotas

  • modules

    @isotopekit/pricing

    Pricing page loaders, plan cards, checkout dialogs

  • modules

    @isotopekit/billing-ops

    configureBillingOps, checkout, webhooks, Dodo adapter

  • transport

    @isotopekit/api

    Hono v1 routes, portable HTTP transport

The stack your AI tools already know.

Wired in apps/starter today — not a wishlist. Highlighted tools carry the product; the rest keep the edges sharp.

Next.js composition root. Better Auth for identity. Postgres + Drizzle for data. Hono for portable API. Zod at the boundaries. TanStack Query on the client. shadcn you own.

  • Next.js 16

    App Router composition root

  • Better Auth

    Sessions, orgs, MFA, social

  • PostgreSQL

    Source of truth for tenants

  • Drizzle ORM

    Typed schema and migrations

  • Hono

    Portable /api/v1 transport

  • Zod

    Env and payload validation

  • TanStack Query

    Client data and mutations

  • shadcn/ui

    Owned UI primitives

Also in the box

  • TypeScript · End-to-end types
  • Tailwind CSS v4 · Utility styling
  • Lucide · Icon set
  • Pino · Structured logging
  • React Email · Transactional templates
  • Docker · Dev app + database
  • Vercel Workflows · Background email jobs
  • Biome · Lint and format

~20 min

per provider — OAuth console, env, and bootstrap/auth.ts

Add a social login. Skip the OAuth spaghetti.

Better Auth owns the hard parts. You create the OAuth app, put secrets in env, and register the provider in the composition root. Login, signup, and account security pick it up from authProviders.

  • Google · wired
  • GitHub · same pattern
  • Microsoft · same pattern
  • Apple · same pattern
  • LinkedIn · same pattern
  • Discord · same pattern
  1. Create an OAuth app in the provider developer console

  2. Add CLIENT_ID and CLIENT_SECRET to app env (extends kit presets)

  3. Register credentials in apps/starter/lib/bootstrap/auth.ts via configureAuth({ socialProviders })

  4. Login, signup, and security UI read authProviders automatically

Files you touch

UI routes stay put. You don’t edit a forked auth package.

  • packages/core/config/src/env/auth.ts

    Optional Zod env keys in the auth preset (if kit-wide)

  • apps/starter/env.ts

    Or product-only keys via createEnv extends

  • apps/starter/.env

    Provider client id + secret

  • apps/starter/lib/bootstrap/auth.ts

    Add entry under socialProviders (+ trustedProviders)

Access

Early access now. Team and Agency next.

No invented launch prices. Early access is invite-led. Team and Agency open when packaging is ready.

  • Early access

    Contact

    All @isotopekit/* packages, the starter composition root, and semver updates while we polish launch.

    • All @isotopekit/* packages
    • apps/starter composition root
    • Agent docs + Cursor skills
    • Semver package updates
    Request early access
  • Team

    Soon

    For startups shipping one product on the kit.

    • Everything in Early access
    • Priority support channel
    • Upgrade guides per release
    • Composition-root wiring help
    Join the Team waitlist
  • Agency

    Soon

    White-label and multi-client workflows built in.

    • Agency hub + client accounts
    • Branding extension points
    • Dedicated onboarding call
    • Everything in Team
    Join the Agency waitlist

Waitlist

Want Team or Agency when it ships?

Join the list for those tiers. We’ll share pricing when it’s real — not before.

No spam. One ping when Team or Agency opens.

FAQ

Straight answers. Technical where it matters.

  • A Next.js SaaS kit built from versioned @isotopekit/* packages — auth, multi-tenant orgs, billing, entitlements, agency, and admin — wired into a thin app you own. Agent docs and Cursor skills ship with it.