Installation
Install the package
Section titled “Install the package”npm install @usebetterdev/tenantpnpm add @usebetterdev/tenantyarn add @usebetterdev/tenantbun add @usebetterdev/tenantThe main package (@usebetterdev/tenant) includes the core library and all adapters via subpath exports. The CLI (@usebetterdev/tenant-cli) is used via npx for generating migrations and verifying your setup — no installation required.
Peer dependencies
Section titled “Peer dependencies”You need a database driver and (optionally) a framework. Install the ones you use:
ORM adapter
Section titled “ORM adapter”npm install drizzle-orm pgImport: @usebetterdev/tenant/drizzle
npm install drizzle-orm postgresImport: @usebetterdev/tenant/drizzle
npm install @prisma/client @prisma/adapter-pgRequires Prisma 7+ (@prisma/client >= 7.0.0 and @prisma/adapter-pg >= 7.0.0).
Import: @usebetterdev/tenant/prisma
Framework adapter
Section titled “Framework adapter”npm install honoImport: @usebetterdev/tenant/hono
npm install expressRequires Express 5+ (express >= 5.0.0).
Import: @usebetterdev/tenant/express
Next.js is already installed in your project.
Import: @usebetterdev/tenant/next
Requirements
Section titled “Requirements”- Node.js 22+ (also supports Bun and Deno)
- PostgreSQL 13+ (RLS, session variables,
SET LOCAL) - TypeScript 5+ (recommended, but not required)
- Non-superuser database role for your application connection
Subpath exports
Section titled “Subpath exports”All adapters are available through the umbrella package via subpath exports:
| Import | Contents |
|---|---|
@usebetterdev/tenant | Core: betterTenant, getContext, runAs, runAsSystem |
@usebetterdev/tenant/drizzle | drizzleDatabase, tenantsTable, tenantId |
@usebetterdev/tenant/prisma | prismaDatabase |
@usebetterdev/tenant/hono | createHonoMiddleware |
@usebetterdev/tenant/express | createExpressMiddleware |
@usebetterdev/tenant/next | withTenant |
Next steps
Section titled “Next steps”- Quick Start — wire up a working multi-tenant app