Jazz - the DB that syncs

@jazz.tools

Jazz is an open-source DB that runs right in your frontend, containers and workers — with auth, permissions, files, multiplayer, E2EE & more.

Building @jazz.tools v2 in public, Ep 3 Main learning: ground your LLMs in your concrete problem, build jigs, religiously optimize code iteration speed. The last couple days were more perf work, driven by a specific target that a commercial use case gave us.

Bild

Fluid migrations are one of the most novel features of @jazz.tools v2. Inspired by @inkandswitch.com’s Cambria paper, they re-imagine migrations: - not a stop-the-world global mutation - but bidirectional lenses (mappings) - translating between a pair of schema versions - that can be chained

Joe@joeinn.es · 3mo ago

One cool thing we're doing at @jazz.tools is reimagining migrations. Instead of migrating your data, you tell clients how to read it, inspired by @inkandswitch.com's Cambria paper. Last week I built this interactive diagram to show how it works. Check it out in our docs: jazz.tools/docs/schemas...

As promised, yapping more on @jazz.tools After launching the v2 alpha at React Miami our focus has been polish and perf, and there is a lot to do. Often, refactoring and nailing down semantics go hand in hand with performance.

Jazz 0.19.0 brings our high-perf Rust core to all Jazz environments: - Browser/workers via wasm-bindgen - NodeJS via NAPI-RS - *New*: ReactNative/Expo via UniFFI In the future, we'll offer idiomatic Swift, Kotlin, Go, etc. bindings as we move API-level code into Rust as well.

Bild

People keep asking us if @jazz.tools will have vector search... What's better than building a first class vector search feature for Jazz in maybe a couple months? A single person right now being able to ship it as a small, very neat, very high quality library *on top of* Jazz! vimeo.com/1111603758

Introduction to Jazz Vector

Library that lets you run on-device vector similarity search, built on Jazz database. Learn more: Live demo GitHub repo Jazz database

vimeo.com

Two weeks after alpha-3 which foreshadowed our move to @jazz.tools for greater stability, alpha-4 gets it done! blog.muni.town/roomy-space-... Special shoutout to @flo-bit.dev who took the lead on this release. Up next is bridging so Roomy & Discord (later Matrix) folk can share the same space.

Roomy .space (alpha-4)

New domain on roomy.space; backend-switch to Jazz for better performance and access controls; BeeKEM decentralized E2EE explained; notification markers for mentions & unreads.

blog.muni.town

Streamed LLM responses are the perfect example of why we didn't base @jazz.tools on an existing DB, but are building a new backend + DB from scratch. Originally we just wanted to support Figma/Notion-like apps where we knew we had to sync 100,000s of tiny edits per second... 🧵 x.com/marbemac/st...

Sync engines are an incremental improvement to the "centralised server + client" model - the minimal possible step towards the real-time nature of apps today. But we can do much better 🧵

Quoted tweet by James Cowling: ""Local first" is a nice goal towards low latency and offline support but in practice the source of truth for almost any app that stores important data is the server. "Sync engines" are a solid architectural model that bridges state on the client and state on the server, without dealing with polling, inconsistency, and all the distributed systems bs that should be a relic of the past. They are how everyone will interact with backends in the future. We see @convex_dev as "react for backends" but there are an emerging group of great platforms in this space."

Megathread of everything we're announcing for @jazz.tools at @localfirstconf.com It's been a hell of a year in the best sense and I can't wait to share what we've been cooking. (And this doesn't even include our "one more thing" 🤫) Stay tuned as I expand on details over the next couple days!

Bild

I love doing adopter support calls for @jazz.tools "No you don't need to do that..." "This extra indirection isn't necessary..." "Yes, you can use CoValues as both UI state and the persisted source of truth - you don't need to copy back and forth" "No you don't need to 'save' "