Minnow database

A browser native SQL database

Durable, columnar application data with no server and no WebAssembly module. Query it directly with SQL or through Kysely.

Read the docsnpm install @minnowdb/core

The real thing

Query a live database

Loading the console…

The whole database, in the browser

Familiar tools for local data that needs to last.

PostgreSQL-style SQL

Use familiar parameters, joins, CTEs, windows, grouping sets, upserts, RETURNING, triggers, exact decimals, JSON, arrays, enums, and savepoints.

Direct SQL or Kysely

Use the engine's direct SQL API or connect Kysely through its PostgreSQL compiler. Both paths use the same engine and data.

Columnar and durable

Compressed columns make scans and aggregates efficient. IndexedDB and OPFS keep writes durable and publish each commit atomically.

No server or Wasm

Minnow is plain JavaScript, about 382 KiB gzipped with the engine and OPFS adapter. There is no database process, Wasm module, compile delay, or special hosting setup.

Safe across workers and tabs

Run queries off the UI thread. Snapshot reads stay consistent while other tabs write, and live queries refresh after relevant commits.

Search without index setup

Run full-text MATCH and BM25 queries on any column. Minnow builds and maintains the full-text index in the background when it helps.

Clear compatibility

Know which PostgreSQL features work

Every documented SQL form has a runnable example and a PostgreSQL classification. Supported reads and writes are compared with PGlite, and every deliberate difference or exclusion is listed plainly.

Try to catch it