Replace Your Stack
Stop stitching together services. RaisinDB unifies your data layer into a single, versioned database.

One query language, every data model
Documents, graphs, vectors, full-text, and time-travel — all through standard SQL via any PostgreSQL client.
SELECT * FROM 'default'WHERE node_type = 'Article'AND properties->>'status'::String = 'published'ORDER BY created_at DESC;
Everything you need in one database
A multi-model database that combines document storage, graph queries, search, and version control in a single system.
Git-like Versioning
Branches, tags, and commits for your data. Draft and commit workflows, merge operations, revision history, and time-travel queries.
CREATE BRANCH feature/new-content FROM main;Schema-Driven Development
Define NodeTypes in YAML with typed properties, validation rules, inheritance, and constraints. Deploy schemas as part of your codebase.
PostgreSQL-Compatible SQL
Connect with psql or any PostgreSQL client. Query with JSON operators, hierarchical functions, and standard SQL.
Graph Queries
Model relationships with bidirectional edges. Traverse graphs with SQL/PGQ and the NEIGHBORS() function.
Full-Text Search
Tantivy-powered search with multi-language stemming, fuzzy matching, wildcards, and relevance scoring. Indexes update with your data automatically.
SELECT * FROM SEARCH('main', 'content:database AND type:article')Vector Search
Store embeddings and run KNN similarity queries. Build semantic search, RAG pipelines, and AI agent memory without external vector stores.
RAP Packages
Package schemas, content, and functions into Raisin Archive Packages. Distribute and install reusable content modules.
Serverless Functions
Run JavaScript, Starlark, or SQL functions inside the database. Triggers, computed fields, and custom API endpoints.
DCAD: Schema-Driven Apps
Your schema defines your app. Archetypes map data to UX patterns — switch the archetype, change the entire interface without touching data.
Authentication & RBAC
Pluggable auth strategies, workspace-scoped roles, row-level security. Content-centric permissions that replicate across clusters.
ACID Transactions
Atomic commits across multiple operations. Begin, commit, or rollback — strong consistency across all data models in a single transaction.
Real-Time Events
Subscribe to node changes via WebSocket or SSE. Filter by workspace, node type, or path. Automatic reconnection and deduplication built in.
Built for Modern Applications
Content Management Systems
Manage articles, pages, and media with branching workflows and editorial review. Schema-driven content modeling with full revision history. Multi-tenant by design.
SaaS Platforms
Tenant isolation, workspace organization, and version-controlled data out of the box. REST API, WebSocket events, and PostgreSQL wire protocol for flexible integration.
AI Agent Memory & RAG
Give AI agents branching memory — each workflow gets its own branch to reason and iterate without corrupting shared state. Vector search for RAG, serverless functions for tool use, and full revision history so agents never lose context.
Schema-Driven Applications (DCAD)
Let your schema drive the UI. Archetypes define how data is presented — change the archetype, transform the interface. Build dynamic, data-centric apps without rewriting frontend code.
Use your existing tools
RaisinDB speaks PostgreSQL wire protocol. Connect with any standard library — no proprietary SDK required.
import pg from 'pg';const pool = new pg.Pool({connectionString: 'postgresql://admin:admin@localhost:5432/myrepo'});// Standard PostgreSQL queries — just worksconst { rows } = await pool.query(`SELECT path, properties->>'title'::String AS titleFROM 'content'WHERE node_type = 'news:Article'AND properties->>'status'::String = 'published'ORDER BY created_at DESC LIMIT 10`);// Row-level security via user contextawait client.query('SET app.user = $1', [accessToken]);const results = await client.query(sql);await client.query('RESET app.user');
Get Started with RaisinDB
npm install -g @raisindb/cli && raisindb server startOne command to install, one to start. Define your first schema and start querying in minutes.