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

→
Joined October 2022
jazz leaves the hard part to you (design systems)
one of my beliefs is that most apps basically solve the same engineering problems over and over again: - a design system - a sync engine - transactional database and if you just extract these out and solve them correctly, "vibe coding" any app on top becomes trivial
1
8
500
Jazz - the DB that syncs retweeted
I considered building @jazz_tools on Postgres so many times and always decided against it. Couldn’t ask for a better contender for this thesis than Electric at Neon. Let’s make sync engines mainstream.
Previously, to build realtime apps you've needed some sort of special sync system. With Neon Realtime you now get realtime reactivity built directly into Postgres.
3
1
1
26
1,501
excited for tomorrow
San Francisco, we’re coming your way this Wednesday! 🌉 Join the Effect community at @coderabbitai's rooftop for an evening of Effect talks, a fireside chat, good food, and drinks. September 30 · 5:30–8:30 PM Save your spot: luma.com/all-things-effect
2
12
1,266
Jazz - the DB that syncs retweeted
i am so bullish on @jazz_tools v2 every app eventually needs to be realtime collaborative, implement some kind of versioning system and sophisticated caching and optimistic ui. with jazz you get all of that. v2 addresses a few pain points from the current version (now referred to as classic jazz) that make it a viable pick for a lot more applications. i cant wait @anselm_io :)
2
2
15
670
Jazz - the DB that syncs retweeted
funny how with @jazz_tools we went from “how can this have the most beautiful DRY syntax” to “how can we make the syntax as explicit & complexity-forward as possible to make sure LLMs can’t fuck up” In many cases it’s still very readable, or more so! It’s just less writable 🤷‍♂️
2
1
15
858
Jazz - the DB that syncs retweeted
We're doing another Side Project Party next week! Come hang out and make progress and friends! luma.com/spp3
Side Project Party II: huge success! 2x oversubscribed, so many nice people working on diverse cool stuff showed up ❤️ Several folks told me that seeing people's demos made them want to pour even more into their own thing. Will do another one in 2-3 weeks, subscribe below!
1
3
22
1,000
Jazz - the DB that syncs retweeted
Shoutout to @anselm_io and @jazz_tools for hosting an awesome work session. Will definitely be at the next one! Had a fun time building and meeting some cool people like @afterlanie
2
6
322
very happy to sponsor this we live in the golden age of side projects got some stuff coming up that makes it even easier to spin up a jazz db. or a thousand. for your “couple” side projects!
Side Project Party II: huge success! 2x oversubscribed, so many nice people working on diverse cool stuff showed up ❤️ Several folks told me that seeing people's demos made them want to pour even more into their own thing. Will do another one in 2-3 weeks, subscribe below!
1
1
618
the bad thing about jazz adopters is that they’re insane the great thing about jazz adopters is that they’re insane
You can just ship Postgres interface support for your favorite upcoming relational db
1
1
7
948
Jazz - the DB that syncs retweeted
Huge thanks to our speakers, volunteers, venue staff, and sponsors @Cloudflare , @powersync_ , @coderabbitai , @jazz_tools , @bluesky , @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. See you in 2027.
3
8
19
1,106
if you can read this, you’ve discovered the databases-and-music part of twitter
Think music theory is the basis for music? Or that it is just a way of writing down what sounds good? Surprise, both wrong. It's time once again for my very favorite video on music, music theory, and why we like the things we do: youtube.com/watch?v=tCsl6ZcY…
1
9
819
Jazz - the DB that syncs retweeted
Wrapped up @localfirstconf 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?
3
2
36
1,631
Jazz - the DB that syncs retweeted
history of distributed systems with the 🐐 at @localfirstconf
2
1
1
23
1,563
Jazz - the DB that syncs retweeted
TLDR
For his master's thesis, @mikael_siidorow 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 and precisely categorized overview of our field! PDF below.
2
1
4
1,388
Jazz - the DB that syncs retweeted
For his master's thesis, @mikael_siidorow 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 and precisely categorized overview of our field! PDF below.
3
2
2
14
2,947
Jazz - the DB that syncs retweeted
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. Optimization un/fortunately has always been extremely addictive to me: a giant puzzle with a clear reward function. LLMs are good at it for the same reason. They especially help with the tedious parts: run the benchmark, interpret profiles, correlate with code impl, small thesis, small experiment, rebuild, remeasure, repeat. This already worked well for our synthetic benchmarks in our monorepo, but here we were particularly interested in perf in a concrete adopter app, in their own repo, under NDA, etc. And what mattered here was end-to-end performance including the jazz server and their use of jazz in their app’s frontend. For a while I was manually getting the app in the right state, profiling, then feeding the profiles to codex. I was the slowest element in the process. Annoyingly, browser automation was similarly slow. So I set up a private meta-repo that had links to a jazz worktree and a worktree of the adopter app. Made codex set up a small jig that directly imported their app code and ran only the perf-relevant part in bun, bypassing all the app setup around it. This shortened the iteration cycle to around 10s (plus Rust build times) and meant codex could reliably iterate on the problem autonomously. In one afternoon of using this setup we found more optimization opportunities than I had in the entire week before, speeding up one particular load pattern by about 24x I’m now using this same jig to optimize cache re-use of subqueries across similar queries, especially for row-level-security policy evals, allowing me to try different designs super quickly. And again, both performance and correctness are grounded in adopter apps that actually are more demanding and intricate than any synthetic benchmarks we could have come up with this early. The longer-term goal is to extend this to as many adopter apps as possible and to automate measuring the effect of changes to jazz on real apps even more. Our North Star here is the equivalent of the “crater run” of the Rust compiler that is run over a large amount of (all?) public rust crates, being a comprehensive check of compile success and performance over the broad ecosystem.
2
12
1,162
when you tell your claude to use jazz
Claude's Code... Enjoy Your Weekend...
1
3
1,200
Jazz - the DB that syncs retweeted
Fluid migrations are one of the most novel features of @jazz_tools v2. Inspired by @inkandswitch's Cambria paper, they re-imagine what migrations are: - not a stop-the-world global mutation - but bidirectional lenses (mappings) - translating between a pair of schema versions - that can be chained This solves the problem of backwards and forwards compatibility of old and new clients in a local-first distributed apps. It's also good for any kind of app: whether you're a single dev with a horde of Claudes, or a large org continuously rolling out features behind feature-flags, everyone is shipping more app features in parallel. And fluid migrations remove the last coordination bottleneck there (schema evolution). But the novelty also means that we have to work out the developer experience around fluid migrations from scratch. This is partly the CLI workflows that we're iterating on and partly good docs that make the concept intuitive. Yesterday, I woke up to this sick interactive diagram that Joe (who does our docs and carries the Discord server) built, which lets you play through different scenarios of schema and client versions and shows clearly how the migration lenses translate appropriately. Link below if you want to play with it yourself. Soon, we will probably incorporate a version of this into the Jazz inspector, so you can reason about the exact schema versions and how your own data gets translated in your app. Let me know if this made sense or if you have any questions!
5
1
43
3,076
Jazz - the DB that syncs retweeted
As promised, yapping more on @jazz_tools After launching the v2 alpha at @ReactMiamiConf 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. We realized this again over the last couple days, working on clarifying the difference between “batches” and “transactions”. Jazz v2 is unique in that it offers both globally consistent MVCC-style ACID transactions as well as local-first, eventually consistent writes (this is actually the default). But then we realized that even for the eventually consistent writes, it sometimes makes sense to group them into units, which we called “batches”. Initially, we thought of this as a pure perf optimization primitive and were quite loose with their semantics compared to transactions, where strictness really mattered. For example, in transactions you clearly want all-or-nothing and rollbacks, but we didn’t really think this was important for batches. But then, trying to actually implement the perf optimizations, we realized that per-row bookkeeping in large batches made them basically pointless. So perf guided us towards a clearer meaning for batches: they should also be all-or-nothing, now only being separated from transactions by one clear distinction: multiple concurrent batches can all be accepted and participate in merge-previews, while only one of multiple transactions gets accepted, resulting in global consistency and linearizability. With all the rows per batch sharing one fate, the bookkeeping overhead disappears and the decision for which tool to use in each case becomes crisp: - eventual consistency ok but need operations to have truly independent fates? Use separate batches. - eventual consistency ok and operations sharing fate ok or even desired as a logical unit? Use one batch. - need global consistency? Use a transaction. It’s fun to see how this loosens up complexity throughout storage format, query subscription updates, sync protocol etc.
2
4
23
1,743
Jazz - the DB that syncs retweeted
Now that the @jazz_tools v2 alpha is out, we're iterating on polish and performance. I knew there would be lots of low-hanging fruit, but today was particularly juicy. Or a "pretty spectacular little gremlin hunt" as codex would of course say.
1
11
700