Prototype

Launch SaaS without rebuilding the backend.

AtomBase is the SaaS-native backend. Give every tenant their own database with organizations, auth, storage, and AI. Powered by distributed SQLite.

acme-corp
pinnacle-io
northwind
contoso
fabrikam
tailspin
woodgrove
adatum
coho-winery
alpine-ski
blue-yonder
fourth-coffee
litware
proseware
treyresearch
wideworldimporters
adventure-works
datum-corp
+999,982 more

What's included

Data API

Query and mutate customer databases over HTTP

Platform API

Onboard customers, manage schemas, run migrations

TypeScript SDK

Type-safe client for Node.js and the browser

CLI

Initialize projects, deploy schemas, manage customers

AI

Coming soon

Authentication

Coming soon

Storage

Coming soon

Realtime

Coming soon

Coming Soon

AI with tenant isolation built in.

Every model call is scoped to a tenant. Context includes knowledge bases, database rows, and metadata—all isolated per customer.

No prompt injection across tenants. No data leakage. Just secure, contextual AI for your customers.

ai.ts
const model = ai.model("support-agent");

await model.generate({
  tenantId,
  input,
  context: {
    include: [
      // Tenant-scoped knowledge base
      ai.context.kb("help-center"),

      // Query specific rows
      ai.context.table("customers")
        .where({ id: customerId }),

      // Inject metadata
      ai.context.vars({ plan: "pro" })
    ]
  }
});
Coming Soon

Enterprise-grade authentication

SSO, RBAC, and organization management. Coming soon.

Templates keep everything in sync.

Define your schema once. Every customer database stays in sync automatically.

Update the template, push, and the migration engine updates all customer databases—whether you have 10 or 10,000.

enterprise template
5 tables · v12 · 2,847 customers
acme-corp
pinnacle
globex
initech
+2,843
analytics template
3 tables · v8 · 1,203 customers
acme-corp
stark-ind
wayne-ent
+1,200
starter template
2 tables · v3 · 89 customers

SDK

Onboard customers and query data

app.ts
import { createClient } from "@atombase/sdk";

const db = createClient({
  url: "http://localhost:8080",
  apiKey: "your-api-key",
});

// Onboard a new customer
await db.tenants.create({
  name: "acme-corp",
  template: "enterprise"
});

// Query their data
const acme = db.tenant("acme-corp");
await acme.from("users").select();

Schema

Define once, use everywhere

schemas/enterprise.schema.ts
import { defineSchema, defineTable, c }
  from "@atombase/schema";

export default defineSchema("enterprise", {
  users: defineTable({
    id: c.integer().primaryKey(),
    email: c.text().notNull(),
    role: c.text(),
  }),

  workspaces: defineTable({
    id: c.integer().primaryKey(),
    name: c.text(),
    ownerId: c.integer(),
  }),
});

CLI

Manage from the terminal

terminal
$ npx atombase init
✓ Created atombase.config.ts

$ npx atombase templates push
✓ Pushed enterprise template

$ npx atombase tenants create \
    acme-corp --template enterprise
✓ Created tenant: acme-corp