raisindb-overview
RaisinDB Overview
Critical Rules
-
Always ask the user for the repository name before writing any frontend code. The repository is a server-side concept (like a database name) — it is NOT the same as the workspace or package name. The WebSocket URL uses the repository name:
ws://localhost:8080/sys/default/{REPOSITORY}. Use it inclient.initSession(REPOSITORY),client.database(REPOSITORY), andclient.loginWithEmail(email, password, REPOSITORY). -
Always validate after changing any YAML in
package/. Run this every time you create or modify a.yamlor.node.yamlfile:npm run validateDo NOT skip this step. Fix any errors before proceeding.
-
For navigation queries, use a
hide_in_navBoolean property on the NodeType instead of filtering by archetype or hardcoding path exclusions. Addhide_in_nav: Booleanto your Page NodeType and filter withproperties->>'hide_in_nav'::Boolean != true. -
Boolean property queries: Cast the key to
Boolean, notString:properties->>'featured'::Boolean = true. For string properties, cast toString:properties->>'status'::String = 'published'.
What RaisinDB Is
RaisinDB is a multi-tenant content database with SQL queries, graph traversal (Cypher/PGQ), real-time WebSocket subscriptions, and CRDT-based replication. You model content as typed nodes living at hierarchical paths, then build frontends that map those nodes to UI components. Every node belongs to a tenant, repository, branch, and workspace.
More from maravilla-labs/raisindb
raisindb-sql
SQL syntax for querying RaisinDB workspaces: CRUD, JSONB properties, hierarchy queries, graph relations, full-text search. Use when writing queries in frontend or server-side functions.
3raisindb-auth
Authentication flows for RaisinDB apps: anonymous access, login, register, session management, auth state listeners. Use when adding authentication to your frontend.
3raisindb-translations
Multi-language content with translation files and locale-based queries. Use when adding internationalization to your RaisinDB app.
3raisindb-file-uploads
Upload, store, and display files using the raisin:Asset system. Covers single/batch uploads, progress tracking, signed URLs, and thumbnails. Use when adding file handling to your app.
3raisindb-frontend-react
Build a React Router frontend for your RaisinDB app with path-based routing, archetype-to-component mapping, and SSR-to-WebSocket upgrade. Use when creating a React frontend.
3raisindb-access-control
Roles, permissions, groups, and row-level security for RaisinDB. Configure anonymous access, custom roles, and fine-grained permissions in your package. Use when setting up authorization.
3