Skip to main content
Version: 0.3.36

Welcome to RaisinDB

RaisinDB is a multi-model content database. Documents live as nodes in a path hierarchy, every change is recorded as a revision, and you can query the same data with SQL, graph queries, full-text search, or the REST and WebSocket APIs.

Why RaisinDB?

  • Version control built in: every write is a revision. Branch, merge, and read data as it was at any earlier revision.
  • Schema-driven development: define NodeTypes with typed properties, validation, and inheritance.
  • Multi-model queries: SQL, GRAPH_TABLE (SQL/PGQ), full-text and vector search, and a REST API over the same nodes.
  • PostgreSQL wire protocol: connect with psql or any PostgreSQL driver.
  • DCAD (Data-Centric Application Design): archetypes and element types describe how content maps to UI, so the schema drives the app.
  • Authentication and RBAC: admin users, end-user identities (password, magic link, OIDC), workspace-scoped roles, and row-level security.

Get Started

Install the CLI, start a server, and scaffold a project.

Core Concepts

Understand nodes, NodeTypes, archetypes, and the data model.

AI & Agents

Use branching memory, vector search, and RAG patterns with AI agents.

Features at a Glance

FeatureDescription
Nodes & NodeTypesHierarchical content with schema definitions
BranchingGit-like branches for parallel work and publishing
SQL InterfaceSQL over workspaces, with JSON property operators and hierarchy predicates
Graph QueriesSQL/PGQ (GRAPH_TABLE) for relationship traversal
Full-Text SearchTantivy-powered search with relevance ranking
Vector SearchSemantic similarity with embeddings
GeospatialLocation queries over geometry properties
Serverless FunctionsJavaScript, Starlark, and WebAssembly functions with triggers
RAP PackagesInstallable content and schema packages
DCADData-centric application design with archetypes and element types
Authentication & RBACAdmin and identity auth, workspace-scoped roles, row-level security

Connect Your Way

# PostgreSQL wire protocol: user = tenant, database = repository, password = API key
psql -h localhost -p 5432 -U default -d myrepo

# HTTP REST API
curl http://localhost:8080/api/repository/myrepo/main/head/default/ \
-H "Authorization: Bearer $TOKEN"
// JavaScript client
import { RaisinClient } from '@raisindb/client';
const client = new RaisinClient('ws://localhost:8080', { repository: 'myrepo' });

Documentation Structure

This documentation follows the Diataxis framework:

Additional Resources


Ready to dive in? Start with the Quick Start Tutorial.