Guides
These guides start with the smallest useful TinyJoin application and reveal storage, transactions, custom Workers, and compatibility details only when they become relevant.
The caveats collect what TinyJoin deliberately does not do, and which projects to reach for when that matters.
For exact method and type signatures, use the API reference.
Getting started
TinyJoin is a relational database that runs locally in a browser. The normal setup is one import and one asynchronous call. Read more.
Storage and lifecycle
TinyJoin supports an ephemeral memory database and an opt-in persistent browser database. Both use the same Worker and page-native engine. Read more.
SQL compatibility
TinyJoin implements its own deliberately bounded, PostgreSQL-shaped SQL dialect. It is not PostgreSQL compiled to WebAssembly, a PostgreSQL server, or a general PostgreSQL replacement. Familiar syntax is used where the smaller runtime can give it clear and deterministic semantics. Read more.
Caveats
TinyJoin is small on purpose, and being small has costs. This page collects what an application signs up for, in one place, so that the decision gets made before the schema does. Read more.
Transactions and changes
Each TinyJoin query is atomic. Use a callback transaction when several related row mutations must commit together. Read more.
Custom Workers
Most applications should use create(). It constructs TinyJoin's packaged module Worker and preserves the relative Worker, OPFS runtime, and WebAssembly assets during the supported Vite build path. Read more.
Agents guide
This guide follows the agents.md convention and gives AI coding assistants a compact, current model of TinyJoin. Read more.
Offline
OPFS persists database rows. Reopening the application without a network also requires its HTML, JavaScript, CSS, Worker, and WASM files to be available. TinyJoin's optional Vite plugin caches the complete production build, including lazy assets that the first visit has not used yet. Read more.
Releases
This is a reverse chronological summary of TinyJoin releases and their public compatibility boundaries. Read more.