finds.dev← search

// the find

garden-co/classic-jazz

★ 2,537 · TypeScript · MIT · updated Apr 2026

A new kind of database that's distributed across your frontend, containers, serverless functions and its own storage cloud.

Classic Jazz is the first-generation version of Jazz, a local-first distributed database that syncs CRDT-backed data across browser, server, and mobile with built-in E2E encryption. The README's opening line is a deprecation notice pointing you to Jazz v2 — this repo exists for existing users, not new projects. Worth looking at for the architecture, not adoption.

- The Rust core (cojson-core) compiled to WASM for browsers and NAPI for Node is a smart call: crypto and CRDT merge logic runs at native speed without shipping a separate binary, and the same Rust code targets React Native via C++ bridge.

- End-to-end encryption is structural, not bolted on — the group asymmetric key design (see .specs/group-asymmetric-key) means the sync server never sees plaintext, which is rare for databases that also handle sync.

- The internal .specs/ directory shows actual design docs with requirements, tasks, and delayed-reconcile-ack thinking — this isn't a project that cargo-cults CRDTs without understanding the edge cases.

- Multi-runtime story is real: browser WASM, Node NAPI, React Native C++ bridge, and edge-lite WASM all ship from the same Rust core, which is a genuine engineering achievement.

- Deprecated on arrival for new readers — the README's first line tells you to go elsewhere. Evaluating this for adoption is wasted time unless you're already running it.

- The build matrix is brutal: separate CI pipelines for NAPI (darwin-arm64, darwin-x64, linux-x64-gnu, linux-x64-musl, linux-arm64, linux-arm-gnueabihf) plus WASM plus React Native. Contributing or self-hosting the full stack requires Rust toolchain setup that most TypeScript teams won't have.

- No migration story visible in the tree — CRDTs don't have schema migrations the way SQL does, but when your CoMap shape changes across app versions you need a plan, and there's no evidence one exists beyond the CRDT merge itself.

- Jazz Cloud vendor dependency is real: self-hosting requires running the sync server yourself, and the docs for doing so appear to live on classic.jazz.tools rather than in the repo, which is a problem when the classic site eventually goes dark.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →