ablo.deck.update(...). Ablo streams confirmed changes to everyone live and
rejects any write based on stale data.
The flow is four steps: declare your models, read the current rows, claim the
row you’re about to change, then write — and the write is rejected if someone
changed the row first.
claim waits for them,
re-reads the fresh row, then hands it to you — so two writers serialize
instead of clobbering.
What you get
Three things stay true no matter how you use Ablo:- One model API for every actor.
ablo.<model>.update(...)is the call from React components, server actions, background workers, and AI agents alike. No separate “agent SDK,” no parallel mutation path. Attribution comes from the credential, not the call site. - You declare tenancy scopes once. Tenancy / per-entity scope
prefixes (
org:,deck:, or your ownregion:/customer:) are declared once on the schema’sidentityRoles, so application code never builds anorg:123string by hand — which keeps tenant boundaries from leaking. - Stale writes are rejected. If the row changed after you read it, your write is turned away instead of silently overwriting the change you didn’t see.
Start here
- Quickstart — Make your first schema-backed write.
- Schema Contract — One schema becomes typed model clients, React reads, agent writes, Data Source shape, and schema push.
- CLI & Migrations —
init/migrate/push/generate, the shared Zod→Postgres type map, and structured migration errors. - Identity & Sync Groups — Use your own authentication; tell Ablo who’s connecting and how org / team / user map to sync-group scope.
- Integration Guide — Connect your database via Data Source, plus React, multiplayer, and agent patterns.
- Guarantees — What confirmed writes, stale checks, and claims guarantee.
- Interaction Model — The schema, claim, update, confirmation loop.
- API Reference — Model-by-model method shape.
- Client Behavior — Options, errors, retries, timeouts, and imports.
- Debugging & Logs — Turn on the
[Ablo]coordination trace (debug/logLevel) to watch claims, queueing, and grants while you build — or read the same activity in code viaClaimLogto render an activity feed. - Connect Your Database — Keep canonical rows in your app database without giving Ablo database credentials.
- React — Provider, hooks, and reactive reads for React apps.
- API Keys — Bearer tokens for the public API.
API shape
| Plane | Primitives | Purpose |
|---|---|---|
| State | Schema, Model, Claim, Receipt | The product path. Load, coordinate, write, confirm. |
| Storage | Data Source | Your rows live in your own database behind a signed Data Source endpoint. |
Use cases
- Let agents write to shared state — Give an AI agent scoped, revocable write access to your typed data.
- Coordinate multiple actors — Use claims to show pre-write work across humans and agents.
- Audit every agent action — Trace any write back to a human in one query.
- Build collaborative editors — Humans and agents on the same record, with realtime updates and stale-read protection.
- Meter and gate API usage — Per-key, per-team usage reports and quota enforcement.
- Integrate with A2A and MCP — Speak the same protocols as Claude, Cursor, Gemini.
Concepts
- Schema Contract — What the schema drives across SDK, React, agents, Data Source, and migrations.
- Model Methods — Load and write typed state.
- Integration Guide — The normal app path and optional pieces.
- Guarantees — Confirmed writes, optimistic state, stale-write protection, and agent lifecycle.
- Coordination —
claim,claim.state, andclaim.queuefor active work. - Connect Your Database — Where data lands when your app database is canonical.
- Receipt — Confirm what landed.
- Usage — Metering and audit dimensions.
- Audit Log — Trace any confirmed write back to the human behind it.
- MCP — Expose Ablo models to MCP clients (Claude, Cursor).
Examples
- AI SDK Tool — Put Ablo inside an AI SDK tool call.
- Existing Python Backend — Add multiplayer and future agent writes without replacing a Python API server.
- Agent + Human — Yield when a human is editing the same report.
- Server Agent — Schema-backed worker.
- Next.js — App-router setup with React bindings.
Runtime builds
@abloatai/ablo— schema-powered sync client for typed model operations, realtime claims, and receipts.