Multitenant

Overview

All `@multitenant/*` packages at a glance.

All public libraries are scoped @multitenant/… on npm. Install only what your app needs; @multitenant/next is a convenience meta-package for Next.js App Router projects. Each published package has its own page under Packages in the sidebar.

Core & config

PackageRole
@multitenant/corecreateTenantRegistry, resolveByHost, resolveByRequest, getTenantConfig, isTenantFeatureEnabled, TenantNotFoundError, …
@multitenant/configloadTenantsConfig, validateTenantsConfig — same validation as multitenant check
npm install @multitenant/core @multitenant/config

CLI & dev proxy

PackageRole
@multitenant/climultitenant init, check, print, dev (local proxy + config hot reload)
@multitenant/dev-proxyHTTP proxy + WebSocket upgrade used by multitenant dev
npm install -D @multitenant/cli
# or: npx @multitenant/cli …

Next.js

PackageRole
@multitenant/nextMeta — re-exports core, config, react, next-app
@multitenant/next-appApp Router — createTenantMiddleware, getTenantFromHeaders, requireTenant; /auto, /auto-node
@multitenant/next-pagesPages Router — withTenantGSSP, withTenantApi
npm install @multitenant/next-app next react react-dom
# or: npm install @multitenant/next next react react-dom

React

PackageRole
@multitenant/reactTenantProvider, useTenant, useMarket, useTenantConfig, useTenantFlag, …

Peers: react ≥ 18.

Servers

PackageRole
@multitenant/expressmultitenantExpress({ registry, environment })req.tenant
@multitenant/nestMultitenantModuleForRoot, @Tenant() decorator
npm install @multitenant/express express
npm install @multitenant/nest @nestjs/common @nestjs/core

Identity & database (optional)

PackageRole
@multitenant/identityEncrypted session cookie helpers, getSessionFromCookieHeader, buildSessionSetCookieHeader, assertAccess
@multitenant/databaserunWithTenantScope, Postgres helpers, bounded pool cache — Node only, not Edge

ORM references (thin, Postgres-oriented)

@multitenant/drizzle, @multitenant/kysely, @multitenant/prisma, @multitenant/typeorm — map ResolvedTenant → pool/client/DataSource. They do not replace createTenantRegistry; they sit beside it.


Versions are per package on npm. Release process: docs/RELEASE.md and npm run release:publish from the monorepo.

On this page