Jazz - the DB that syncs

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.

325 followers7 following34 posts

Jazz - the DB that syncs reposted

Wrapped up @localfirstconf.com in a summery Berlin beer garden yesterday. Always a special crowd to me because it’s where @jazz.tools got born 2 years ago. And where else can you hang out with Martin Kleppmann, Dan Ingalls and people who only use Mistral models at the same place?

Jazz - the DB that syncs reposted

TLDR

Anselm Eickhoff@anselm.io

For his master's thesis, @siidorow.dev interviewed me about how @jazz.tools fits into the landscape of sync engines and local-first DBs. Now that it's published (congrats!) I can say that it is *the* most rigorous & precisely categorized overview of our field! PDF: aaltodoc.aalto.fi/server/api/c...

Jazz - the DB that syncs reposted

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.

Jazz - the DB that syncs reposted

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

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...

Jazz - the DB that syncs reposted

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.

Jazz - the DB that syncs reposted

Replying to @syncconf.bsky.social

@anselm.io (@jazz.tools)will help us grapple with the question of when our sync systems become a full-fledged database. Anselm's talks at Local-First Conf have always been crowd-pleasers, so he's sure to delight at Sync Conf.

Jazz - the DB that syncs reposted

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

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

Jazz - the DB that syncs reposted

Given our realisation that *actually, @jazz_tools is a database* (see QT)... ...we're hosting another meetup in SF this Wednesday! (RSVP below!) Thinking of Jazz as a DB begs the question: how does it fit into the stack? bsky.app/profile/jaz...

View full thread

We'd love to hear what you think about this new way to think about Jazz, as we adapt our homepage, docs, and most importantly as we shape our feature roadmap accordingly. What would you expect most vs. what we have now?

One that’s inherently - distributed - high-throughput multiplayer & LLM ready - verifiably secure Which means Jazz will do everything a DB does But you can use it in more places And it’ll scale better And offer better DX Do more out of the box And do the previously impossible

Jazz - the DB that syncs reposted

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.

blog.muni.townRoomy .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.

Jazz - the DB that syncs reposted

> The AI just is "one more collaborator" and you just dump the tokens into Jazz state as they come in. This is the correct mental model

Anselm Eickhoff@anselm.io

So everything in Jazz is architected around that requirement, from the client to the distributed sync & storage infrastructure. This is a godsend when you start doing AI stuff. The AI just is "one more collaborator" and you just dump the tokens into Jazz state as they come in.

Jazz - the DB that syncs reposted

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...

Jazz - the DB that syncs reposted

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 🧵

Jazz - the DB that syncs reposted

Love meeting new builders online me: “Hey Jazz supports ProseMirror now, we should build a ProseKit example or something” *minds my own business for 3h* @ocavue.bsky.social: “here’s the example”

ocavue.bsky.social@ocavue.bsky.social

Just built a CRDT-powered real-time demo with ProseKit + @jazz.tools ⚡️ Multiple editors, synced live — no backend needed.

Jazz - the DB that syncs reposted

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!

Jazz - the DB that syncs reposted

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' "

Jazz - the DB that syncs reposted

Discord driven development Shoutout to @jmsv.bsky.social for the 3h suggestion-to-🚢 Shoutout to @bensleveritt@mastodon.social for the months of gruelling work in the ProseMirror mines that made this a quick win

Jazz - the DB that syncs reposted

Nothing better than telling people to edit just their package.json for a 12x perf improvement. I still think we can do better for this particular hot path internally. But their app’s “screen of everything” *cold start* is now bottlenecked by React & the DOM! bsky.app/profile/jaz...

Jazz 0.13.20 released - with significant sync and rendering perf improvements We have been focusing on performance and stability over the last month, polishing our internals, sync protocol, and subscription engine.

View full thread

With this new solid foundation, we can now focus on building better primitives for deep loading values (managing errors more gracefully, pagination, etc.) Thanks everyone for your support and feedback, these improvements have been mostly driven by your requests! Shoutouts to @gdorsi.bsky.social

Jazz 0.13.20 released - with significant sync and rendering perf improvements We have been focusing on performance and stability over the last month, polishing our internals, sync protocol, and subscription engine.

View full thread

Now the updates should fire only when there is a change in the data. This means that even with autoload, if a value is already available we won't trigger a redundant update. This should significantly reduce re-renders and thus pressure on React, etc.

Jazz 0.13.20 released - with significant sync and rendering perf improvements We have been focusing on performance and stability over the last month, polishing our internals, sync protocol, and subscription engine.

Now you can deeply load long lists with complex references in a reasonable amount of time (loading a list with 20k refs in around 5s) and get instant loads using a lazy-load approach (tested with lists with around 50k items, even when loading from network)

Jazz - the DB that syncs reposted

Security is the most subtle challenge in full-stack apps. Many devs still re-invent the wheel, building access control with low-level tools like RLS (or worse, ad-hoc backend code) 😱 The security design of @jazz.tools is a godsend for vibe coders (and experienced devs!) 🧵

Jazz - the DB that syncs reposted

Very happy with how this comparison page turned out and proud to have co-sponsored it as @jazz.tools! The fact that such a thorough, fair comparison page could be created by competing vendors and open-source projects is a testament to the spirit of collaboration in the local-first community.

localfirst.fm@localfirst.fm

Announcing the Local-First Landscape A comprehensive guide to help developers choose the right tools for building local-first applications. localfirst.fm/landscape

Jazz - the DB that syncs reposted

Last year @localfirstconf.com, I showed @jazz.tools to a wider audience for the first time - a humble MVP built in my spare time I found investors, team members and our first prod user there ❤️ This year, there'll be 13 of us and so much progress to share! Stay tuned 🎵

bsky.appLocal-First Conf (@localfirstconf.com)Please welcome back @anselm.io creator of jazz.tools and founder of Garden Computing. Anselm will speak about how local-first is accidentally perfect for the AI age.

announcing the Jazz vibe coding MICRO HACKATHON Apr 1 • 6 PM • San Francisco snacks, drinks & great people win MICRO prizes like this fully functional, programmable TinyTV2 (with remote!) + more TBA Sign up below 👇