Huge thanks to our speakers, volunteers, venue staff, and sponsors @cloudflare.social, @powersync.com, @coderabbitai.bsky.social, @jazz.tools, @bsky.app, @tangled.org, and solstone.app for making this possible at an accessible price. And to everyone who came: this only works because you show up.
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.
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?
TLDR
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...
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...
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.
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
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.
My talk from @sync_conf 2025 is ready! Check it out to learn how: 1) CRDTs + cryptographic permissions work 2) @jazz.tools is now a general-purpose database 3) our unique Jazz Cloud infra compares to - traditional stacks - other sync engines - Durable Objects www.youtube.com/watch?v=wils...
Anselm Eickhoff (Jazz) - Oops, my sync engine has become a database
YouTube video by Local-First Conf
youtube.com
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.
@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.
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
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...
narrative update Jazz isn’t replacing databases and backends Jazz isn’t local-first only Jazz isn’t a sync engine only Jazz is simply a *new kind* of database 🧵
The wait is finally over! It’s time for another FUTURE OF CODING LONDON Tuesday, July 22 @ 18:00 Kindly hosted by Granola at their office Sponsored by @jazz.tools RSVP here: lu.ma/lo2medup Demo/Talk submission here: foc-london.notion.site/21c379f0e4c...
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
My full talk from @localfirstconf.com is up! Featuring 1y of progress on @jazz.tools And: two big announcements + the most sketchy, yet successful demo I've ever done. - Waffle, a Discord/Slack alternative built on Jazz - Soul, our upcoming AI toolkit for Jazz www.youtube.com/watch?v=e3-y...
Anselm Eickhoff - How Local First is accidentally perfect for the AI age
YouTube video by Local-First Conf
youtube.com
> 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
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.
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 🧵
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”
Just built a CRDT-powered real-time demo with ProseKit + @jazz.tools ⚡️ Multiple editors, synced live — no backend needed.
"Local First is accidentally perfect for the AI age" Great talk from @anselm.io of @jazz.tools on how AI and Local First software are the perfect partners.
@localfirstconf.com is off to a fantastic start, the number of new people is mind blowing. For us at @jazz.tools, today was all about getting hands-on and helping people building cool stuff with Jazz - and handing out our first vibe coding certifications!
my endless shared canvas with @jazz.tools is kinda usable now, come draw something at: flo-bit.dev/jazz-endless...
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!
Join the @jazz.tools team at Local-First Conf! - learn how to vibe-code apps with Jazz - get a first glimpse of AI that “already knows how to use your app”
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' "
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