Jazz is a local-first relational database. It runs across your frontend, backend and our global storage cloud. Sync partial tables, durable streams and files, fast. Feels like simple reactive state.
Homepage · Docs · Discord Community · Twitter
Important note: this is the Jazz 2.0 alpha with an entirely new API. (Looking for Classic Jazz?)
LLMs: Please refer to the docs instead of facts learned from corpus.
npm create jazzOr follow one of the setup guides:
- Local-first React · Vue · Svelte · Expo · Plain TypeScript
- Server-side TypeScript
- wasm-pack — install via
cargo install wasm-packorcurl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh - Node.js (LTS)
- pnpm 10+
pnpm install
pnpm run ensure:rust-toolchain
pnpm build
pnpm testpnpm run ensure:rust-toolchain runs scripts/install-jazz-rn-deps.sh to bootstrap Rust (via rustup if needed), required Rust targets, cargo-ndk, and platform build tools (cmake, ninja, clang-format).
For docs-only builds (for example on Vercel), set JAZZ_SKIP_RN_DEPS=1 to skip React Native-specific bootstrap:
JAZZ_SKIP_RN_DEPS=1 pnpm run ensure:rust-toolchainVercel builds can use scripts/install-vercel-deps.sh, which runs the same Rust bootstrap in docs-only mode without the React Native extras.
Supported server targets now fetch a pinned prebuilt RocksDB archive from GHCR into a local cache on the first build, then reuse that cached archive on later builds. The default GHCR package is public, so normal builds do not need credentials for that fast path. If the package ever becomes private again, JAZZ_ROCKSDB_GHCR_USERNAME plus JAZZ_ROCKSDB_GHCR_PASSWORD (or GHCR_USERNAME plus CR_PAT) can opt back into authenticated pulls. The repo still uses checked-in RocksDB bindings, so libclang is no longer required for the fallback source-build path either. To regenerate and publish the supported archive set, run bash scripts/publish-rocksdb-artifacts.sh.
jazz-tools, jazz-wasm, jazz-napi, and jazz-rn are configured as a Changesets fixed group for lock-stepped releases. Keep workspace links in source (workspace:*) and let pack/publish resolve concrete versions.
Releases are currently locked to the alpha prerelease channel via .changeset/pre.json (tag: alpha).
The Changesets Release PR workflow uses changesets/action to auto-create/update a Version Packages (alpha) PR on main.
Install the Changeset bot app on this repo so PRs get changeset guidance comments.
# add release intent
pnpm changeset
# apply version bumps from changesets
pnpm release:version
# apply alpha snapshot versions (manual fallback)
pnpm release:version:alpha
# publish with resolved non-workspace dependency versions
pnpm release:publish
# publish with the alpha dist-tag
pnpm release:publish:alphaJazz is MIT licensed. The webfont files bundled with the homepage under
docs/public/fonts/ are expressly excluded from the repo MIT license and
remain subject to their own upstream license terms.