Manage a million databases
like it's one.
Building production-ready multi-tenant apps has never been easier.
What's included
Data API
Query and mutate tenant databases over HTTP
Platform API
Create tenants, manage templates, run migrations
TypeScript SDK
Type-safe client for Node.js and the browser
CLI
Initialize, push schemas, manage tenants
Authentication
Coming soon
Storage
Coming soon
Realtime
Coming soon
Vectors
Coming soon
Templates keep everything in sync.
Define your schema once as a template. Every tenant database is created from that template and stays in sync automatically.
Need to add a column? Update the template and push. The migration engine updates every database—whether you have 10 tenants or 10,000.
No more writing migration scripts per database. No more schema drift. No more "works on my tenant but not yours."
Auth built for multi-tenancy
Coming soon...
SDK
Create tenants and query data
import { createClient } from "@atomicbase/sdk";
const db = createClient({
url: "http://localhost:8080",
apiKey: "your-api-key",
});
// Create a tenant database
await db.tenants.create({
name: "acme",
template: "saas-app"
});
// Query like any database
const acme = db.tenant("acme");
await acme.from("users").select();Schema
Define once, use everywhere
import { defineSchema, defineTable, c }
from "@atomicbase/schema";
export default defineSchema("saas", {
users: defineTable({
id: c.integer().primaryKey(),
email: c.text().notNull(),
name: c.text(),
}),
projects: defineTable({
id: c.integer().primaryKey(),
name: c.text(),
ownerId: c.integer(),
}),
});CLI
Manage from the terminal
$ npx atomicbase init
✓ Created atomicbase.config.ts
$ npx atomicbase templates push
✓ Pushed saas-app template
$ npx atomicbase tenants create \
acme --template saas-app
✓ Created tenant: acme