Demand-paged SQLite, from a file:// page

A real SQLite database whose pages live in IndexedDB, read and written on demand — not sql.js-style whole-file-in-RAM. With FTS5 full-text search and CRDT merge available in the same build. No server, no SharedArrayBuffer, no network fetch.

Replica

booting…
Two independent databases in two IndexedDB stores. Add notes to each, then merge them below — that is the CRDT part. Each is demand-paged the same way.
0 pages 0 KB on “disk” db_version 0 site

Add a note

Then reload the page — it persists, written to IndexedDB block by block.

Full-text search (FTS5)

Ranked by bm25(), snippets from snippet().

0 notes

CRDT sync (cr-sqlite)

off
Promote notes to a conflict-free replicated relation. Then pull a changeset from one replica and merge it into the other — in either order, any number of times.
Peek under the hood: DevTools → Application → IndexedDB → replica-a — each row is one SQLite page (a FileBlock keyed [path, offset, version]). · wa-sqlite · cr-sqlite