Skip to main content

Revisium

Your schema. Your data. Full control.

Build your own Headless CMS, Dictionary Service, Configuration Store, AI Agent Memory, Knowledge Base — or anything that needs structured data with integrity. Versioning when you need it.

Key Features

One Platform, Many Interfaces

Work with Revisium however fits your workflow — all interfaces access the same data.

  • Admin UI — visual schema design, data editing, change review — no code needed
  • GraphQL — system API for management + auto-generated typed queries from your schema
  • REST — system API + auto-generated OpenAPI endpoints
  • MCP — AI agents create schemas, manage data, and commit via Model Context Protocol
  • CLI — export schemas and data, generate migrations, seed instances, apply across environments in CI/CD

Admin UI

Visual schema editor, table views with filters/sorts, row editor, diff viewer, change review, branch management, and more.

Admin UI — table editor with filtering, nested field columns, and inline editing
Admin UI — table editor with filtering, nested field columns, and inline editing

Learn more →

Data Modeling

Model any data structure based on JSON Schema — strings, numbers, booleans, nested objects, arrays of objects. Schema is enforced on every write.

{
"title": "iPhone 16 Pro",
"price": 999,
"inStock": true,
"specs": {
"weight": 199,
"tags": ["5G", "USB-C", "ProMotion"]
},
"variants": [
{ "color": "Desert Titanium", "storage": 256 },
{ "color": "Black Titanium", "storage": 512 }
]
}

Learn more →

Foreign Keys

Referential integrity between tables — validation on write, cascade rename, delete protection. FK fields are auto-resolved in generated APIs.

{
"title": "iPhone 16 Pro",
"category": "electronics",
"relatedProducts": ["macbook-m4", "airpods-pro"]
}

category → row in categories table, relatedProducts → array of rows in products table.

Learn more →

Computed Fields

Read-only fields with x-formula expressions — 40+ built-in functions, aggregations over arrays.

{
"title": "iPhone 16 Pro",
"price": 999,
"quantity": 50,
"total": 49950,
"inStock": true,
"label": "iPhone 16 Pro — $999"
}
Computed fields in table — label, inStock, total calculated automatically
Computed fields in table — label, inStock, total calculated automatically
Computed fields in row editor — formula icon on computed values
Computed fields in row editor — formula icon on computed values

total, inStock, label are computed automatically from title, price, quantity.

Learn more →

Files

S3 file attachments at any schema level — images, documents, galleries. Use embedded file fields directly in your tables, or create a dedicated assets table for reuse. Unopinionated — structure it however fits your project.

{
"title": "iPhone 16 Pro",
"cover": {
"status": "uploaded",
"fileId": "abc123",
"url": "https://s3.../cover.jpg",
"fileName": "cover.jpg",
"hash": "sha256...",
"extension": "jpg",
"mimeType": "image/jpeg",
"size": 340000,
"width": 1200,
"height": 800
},
"gallery": [
{
"status": "uploaded",
"fileId": "def456",
"url": "https://s3.../front.jpg",
"fileName": "front.jpg",
"hash": "sha256...",
"extension": "jpg",
"mimeType": "image/jpeg",
"size": 280000,
"width": 1200,
"height": 800
},
{
"status": "uploaded",
"fileId": "ghi789",
"url": "https://s3.../back.jpg",
"fileName": "back.jpg",
"hash": "sha256...",
"extension": "jpg",
"mimeType": "image/jpeg",
"size": 310000,
"width": 1200,
"height": 800
}
]
}

Learn more →

Versioning & Branches

Not row-level versioning. Not table-level versioning. Project-level versioning — one commit captures a full snapshot of all tables, schemas, and data.

Revision #3 (immutable snapshot)
├── Table: products — schema + 150 rows
├── Table: categories — schema + 12 rows
├── Table: settings — schema + 1 row
└── Table: users — schema + 45 rows

Like git commit — but for your entire database. Branches, drafts, full history, diff between any two revisions, rollback to any point.

Versioning is optional — you can work in draft indefinitely without ever committing, just like any other database.

Branch Map — branches, revisions, and API endpoints
Branch Map — branches, revisions, and API endpoints
Row diff — field-level changes with old and new values
Row diff — field-level changes with old and new values

Learn more →

Schema Evolution

Change types, add/remove/move fields — existing data transforms automatically. No manual data migration needed.

  • Add field — existing rows get the default value
  • Remove field — data cleaned from all rows
  • Change type — automatic conversion (string ↔ number ↔ boolean)
  • Move field — field relocated, data preserved
Schema Evolution — review changes before applying (field added, field removed)
Schema Evolution — review changes before applying (field added, field removed)

Learn more →

Migrations CLI

Auto-generated migrations, portable across environments via CI/CD.

# Export migrations from source instance
npx revisium migrate save --file ./migrations.json

# Apply to target instance
npx revisium migrate apply --file ./migrations.json

Learn more →

Data Portability

Download your schemas and data at any time. Upload to seed a new instance or restore from backup. You own your data — export it, version it in Git, move it between environments.

# Download all schemas
npx revisium schema save --folder ./schemas

# Download all data
npx revisium data save --folder ./data

# Upload to another instance
npx revisium data apply --folder ./data

Learn more →

APIs

Two layers: system API for management + auto-generated typed APIs from your schema.

Auto-generated typed schema from your tables. Filtering, sorting, pagination, FK resolution.

query {
products(data: {
where: { data: { path: ["category"], equals: "electronics" } }
orderBy: [{ data: { path: "price", direction: "desc", type: "float" } }]
first: 10
}) {
edges {
node { data { title, price, category { name } } }
}
}
}

Response:

{
"data": {
"products": {
"edges": [
{
"node": {
"data": {
"title": "iPhone 16 Pro",
"price": 999,
"category": { "name": "Electronics" }
}
}
}
]
}
}
}

Generated schema (excerpt):

type ProjectProduct {
title: String!
price: Float!
category: ProjectCategory # FK auto-resolved
}

type ProjectProductNode {
id: String!
createdAt: DateTime!
updatedAt: DateTime!
data: ProjectProduct!
}

type Query {
product(id: String!): ProjectProductNode
products(data: ProjectGetProductsInput): ProjectProductConnection
}

Learn more →

Platform Hierarchy

Separate teams, projects, and environments. Each with its own branches, version history, and API endpoints.

Learn more →

Self-Hosted

Apache 2.0, your infrastructure, no vendor lock-in. Or use Revisium Cloud.

  • Standalonenpx @revisium/standalone@latest (embedded PostgreSQL, zero config)
  • Docker Compose — full stack with PostgreSQL, recommended for production
  • Kubernetes — Helm chart, horizontal scaling

Learn more →

Revisium in Your Stack

  • Frontend, Backend, Mobile — consume data via auto-generated REST and GraphQL APIs
  • AI Agents — interact via MCP protocol (create schemas, manage data, commit)
  • Admin UI — ready-made UI for schema design, data management, and change review
  • CI/CD — export schemas to Git, apply migrations across environments with revisium-cli

Next Steps

  • Quick Start — Get Revisium running in under 2 minutes
  • Core Concepts — Data model, schemas, versioning
  • Admin UI — Visual schema design and data management
  • APIs — System API, generated APIs, MCP
  • Use Cases — Headless CMS, Dictionary, Config Store, AI Memory