# Minnow > Minnow is a columnar SQL engine that runs entirely in the browser. It parses, plans, and executes SQL itself over immutable columnar blocks stored in IndexedDB, with no server and no WebAssembly to download. Published at https://minnowdb.com. Every link below is site-relative, so this file reads the same from a local build as from the live site. Engine version 0.1.1. `@minnowdb/core`, `@minnowdb/client`, and `@minnowdb/devtools` share a major version and move independently inside it; install them on the same major. Every page below is the markdown the site was written from. The whole set in one file is at /llms-full.txt, and the SQL surface as data is at /sql-feature-matrix.json. Writing Minnow code? /agent-rules.md is a short rules file covering the API, the traps, and the SQL forms this engine rejects. ## Documentation - [Overview](/docs/index.md): A columnar SQL engine that runs entirely in the browser. - [Installation](/docs/installation.md): Install the package and open a database. - [Your first query](/docs/first-query.md): Create a table, write rows, and read them back — all in SQL. - [Devtools](/docs/devtools.md): An embeddable SQL console for your database — a floating panel in dev, an inline playground in docs. ## SQL - [Running SQL](/docs/sql.md): The four calls that execute statements, how parameters bind, and what comes back. - [Reading data](/docs/sql/select.md): Joins, subqueries, CTEs, window functions, set operations, and grouping sets. - [Writing data](/docs/sql/dml.md): Insert, update, delete, upsert, and RETURNING. - [Tables and types](/docs/sql/ddl.md): CREATE TABLE, the column types, and what a unique key buys you. - [Full-text search](/docs/sql/full-text-search.md): MATCH and BM25 over any column, with no index DDL. - [Query plans](/docs/sql/plans.md): What EXPLAIN shows, and what the optimizer does before it. - [Feature matrix](/docs/sql/feature-matrix.md): Every SQL form the engine supports, and every one it deliberately rejects. ## Schema - [Schema & migrations](/docs/schema.md): Define tables once in TypeScript, and evolve them without rewriting stored data. ## Typed client - [The typed client](/docs/client.md): A schema-aware query builder with inferred row types, shipped as its own package. - [Queries](/docs/client/queries.md): The select builder — joins, expressions, aggregates, subqueries, and set operations. - [Mutations](/docs/client/writes.md): Typed inserts, updates, deletes, and returning — and which engine path each takes. - [Live queries](/docs/client/live.md): Subscribe to a query and get a fresh result after every commit that could change it. ## Engine - [The database API](/docs/engine.md): MinnowDatabase, batch writes, and the options that shape a database. - [Transactions and snapshots](/docs/engine/transactions.md): Making several writes atomic, holding one version across several reads, and what happens when two writers collide. - [Workers & multi-tab](/docs/engine/workers.md): The shipped worker entry, the main-thread client, and bundler setups. - [Memory](/docs/engine/memory.md): The execution budget, spilling, and the buffer pool. ## Storage - [Storage adapters](/docs/storage.md): The block store contract, and choosing between IndexedDB and memory. - [IndexedDB](/docs/storage/indexeddb.md): The durable adapter — options, durability, quota, and what it stores. - [Memory](/docs/storage/memory.md): The in-process adapter, for tests and throwaway work. - [Snapshots](/docs/storage/snapshots.md): Copy one committed version out as a portable file, and load it back into any store. - [Compaction and collection](/docs/storage/maintenance.md): Merging small segments and reclaiming superseded blocks, without blocking anything. ## Reference - [API reference](/docs/reference/api.md): Every public export of @minnowdb/core and @minnowdb/client, by entry point. - [Extending Minnow](/docs/reference/extending.md): The primitives for building a typed layer, schema tool, or adapter on top of the engine. - [Architecture](/docs/reference/architecture.md): How Minnow works and why it's built this way. - [Testing & benchmarks](/docs/reference/testing.md): The test runners, the release gate, the performance gate, and the benchmark workloads. - [Versioning](/docs/reference/versioning.md): One major across every package, what a version change means, and how a release is cut. - [AI agents & LLMs](/docs/reference/agents.md): Machine-readable documentation, and the rules to give an agent writing Minnow code. ## Optional - [Playground](/playground/): a live database of ~590,000 rows, generated in the browser, that any SQL can be run against. - [Benchmarks](/benchmarks/): Minnow against SQLite Wasm and PGlite, run in the visitor's browser. - [Source](https://github.com/ericwilhite/minnow): the repository, MIT licensed.