Overview

The database that syncs.

Jazz is a local-first relational database with row-level permissions, real-time sync, and offline support — no separate API layer needed. Your app reads from and writes to a local replica, and Jazz syncs it with a server in the background.

import { schema as s } from "jazz-tools";
​
// Define your schema
const schema = {
todos: s.table(
{
title: s.string(),
done: s.boolean(),
},
{},
),
};
const app = s.defineApp(schema);
​
// Write — instant, works offline
db.insert(app.todos, { title: "Ship it", done: false });
​
// Read — reactive, stays up to date across devices
db.subscribe(app.todos.where({ done: false }), (todos) => {
console.log(todos);
});

Jazz works with React, Vue, Svelte, Solid, Expo/React Native, plain TypeScript, and Rust.

(Looking for classic Jazz docs?)

Quickstart

Quickstart

Install

Client
TypeScript Server

Setup

Client Setup
Server Setup

Reference

Authentication
Schemas
Reading Data
Writing Data
Permissions
Migrations