Core Concepts //Local SQLite & Data Sovereignty
Docs/Core Concepts/Local SQLite & Data Sovereignty

Local SQLite & Data Sovereignty

Understand how OpenBoard stores all canvas states, shapes, and metadata locally.
4 min read
Last updated: 2026-08-17

Database Schema Architecture

OpenBoard utilizes embedded SQLite with synchronous better-sqlite3 bindings to manage multi-board workspaces. The database is organized into clean relational tables:

  • boards: Stores board UUIDs, titles, descriptions, creation timestamps, and soft-delete (Trash) status flags.
  • shapes: Stores individual shape records, x/y spatial coordinates, dimensions, types (box, text, arrow, frame), and JSON properties.
  • bindings: Stores directional arrow bindings connecting source and target shapes.
  • assets: Stores embedded vector SVGs, image assets, and custom icon definitions.

Write-Ahead Logging (WAL)

OpenBoard enables SQLite WAL Mode by default:

  • Concurrent Access: CLI commands, terminal AI agents over MCP, and browser UI websockets can read and write concurrently without locking conflicts.
  • Crash Safety: In case of sudden machine reboot or terminal interruption, pending transactions are safely recovered from the WAL journal.

Backups & Migration

Because all data lives in a single SQLite file at ~/.openboard/openboard.db, backing up or moving your entire workspace is trivial:

bash
# Create an instant timestamped backup
cp ~/.openboard/openboard.db ~/Backups/openboard-$(date +%Y%m%d).db

# Inspect database size and integrity
sqlite3 ~/.openboard/openboard.db "PRAGMA integrity_check;"
Was this page helpful?
Edit this page on GitHub

© 2026 OpenBoard. 100% Free & MIT Licensed.

Database: ~/.openboard/openboard.db