# garden-co/jazz

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/garden-co-jazz).**

2,537 stars · 113 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/garden-co/jazz
- Homepage: https://jazz.tools
- awesome-repositories: https://awesome-repositories.com/repository/garden-co-jazz.md

## Topics

`crdt` `crdts` `database` `end-to-end-encryption` `local-first` `offline-first` `react` `reactive` `state-management` `sync`

## Description

Jazz is a local-first relational database and synchronization framework designed for offline-capable applications. It functions as a reactive state management system that treats database records as the primary source of truth, automatically updating user interfaces in real time as underlying data changes.

The project distinguishes itself through a collaborative data synchronization model that utilizes row-level versioning to track branching edit histories. It implements a security engine based on identity-claim row security, which enforces granular permissions on individual records, and supports end-to-end field encryption to protect sensitive data at the source.

The system covers a broad range of distributed data capabilities, including relational schema definition via a domain-specific language, durable stream-based synchronization between local replicas and remote storage, and geo-optimized distributed hosting. It provides a programmable interface for standard database mutations and queries while ensuring consistency across different devices and environments.

## Tags

### Data & Databases

- [Relational Data Synchronization](https://awesome-repositories.com/f/data-databases/collaborative-data-synchronization-apis/relational-data-synchronization.md) — Implements a synchronization framework using row-level versioning and durable streams for relational data.
- [Local-First Databases](https://awesome-repositories.com/f/data-databases/local-first-databases.md) — Provides a local-first relational database that synchronizes local replicas with a cloud backend.
- [Reactive Data Queries](https://awesome-repositories.com/f/data-databases/reactive-data-queries.md) — Treats database records as the primary source of truth with live queries that trigger interface updates upon data changes. ([source](https://jazz.tools/docs))
- [Synchronization Streams](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/data-streaming/durable-event-logs/synchronization-streams.md) — Syncs local database replicas with remote storage using a sequence of immutable change logs for offline consistency.
- [Database Change Subscriptions](https://awesome-repositories.com/f/data-databases/database-change-subscriptions.md) — Updates the user interface automatically by subscribing to incremental changes in relational database records.
- [Distributed Relational Synchronization](https://awesome-repositories.com/f/data-databases/distributed-relational-synchronization.md) — Keeps structured data consistent across multiple devices and environments using reactive queries and durable data streams.
- [Distributed State Synchronization](https://awesome-repositories.com/f/data-databases/distributed-state-synchronization.md) — Maintains a reactive shared state between distributed environments using tunable consistency for global transactions. ([source](https://jazz.tools/))
- [Branching Version Histories](https://awesome-repositories.com/f/data-databases/in-place-cell-editing/edit-history-tracking/branching-version-histories.md) — Supports real-time collaboration by maintaining a branching, versioned history for every individual row. ([source](https://jazz.tools/))
- [Local-First Replica Synchronization](https://awesome-repositories.com/f/data-databases/local-first-replica-synchronization.md) — Synchronizes a local database replica with remote storage in the background to keep state consistent across devices. ([source](https://jazz.tools/docs))
- [Offline Data Management](https://awesome-repositories.com/f/data-databases/offline-data-management.md) — Enables users to create and edit data locally without a connection and sync changes when network returns. ([source](https://classic.jazz.tools/docs))
- [Offline-First Persistence](https://awesome-repositories.com/f/data-databases/offline-first-persistence.md) — Enables application functionality without network connectivity by syncing a local database replica with a remote cloud store.
- [CRUD Operations](https://awesome-repositories.com/f/data-databases/crud-operations.md) — Provides a programmable interface to query, insert, update, and delete rows with filtering, sorting, and pagination. ([source](https://jazz.tools/docs/install/typescript-server))
- [DSL-Based Definitions](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-modeling-schemas/data-schemas/schema-definition/dsl-based-definitions.md) — Uses a domain-specific language to define relational models and permissions as a single source of truth.
- [Data Revision Tracking](https://awesome-repositories.com/f/data-databases/data-revision-tracking.md) — Maintains historical snapshots of data entries to enable auditing and reverting to previous states. ([source](https://classic.jazz.tools/docs))
- [Schema Versioning](https://awesome-repositories.com/f/data-databases/data-schema-management/schema-versioning.md) — Translates between application versions using compatibility layers to update data models without downtime. ([source](https://jazz.tools/))
- [Database Mutations](https://awesome-repositories.com/f/data-databases/database-mutations.md) — Provides a programmable interface for standard database mutations including insertions, updates, and deletions. ([source](https://jazz.tools/docs/install/client))
- [Relational Data Modeling](https://awesome-repositories.com/f/data-databases/relational-data-modeling.md) — Specifies column types, relations, and arrays using a DSL to establish a data model source of truth. ([source](https://jazz.tools/docs/install/client))

### Content Management & Publishing

- [Branching Record Versions](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/versioning-change-tracking/record-versioning/branching-record-versions.md) — Tracks a branching history of changes for every individual record to enable real-time collaboration.

### Development Tools & Productivity

- [Branching Histories](https://awesome-repositories.com/f/development-tools-productivity/change-tracking/row-level-change-logs/branching-histories.md) — Implements a collaborative synchronization model using row-level versioning to track branching edit histories.

### Networking & Communication

- [Data Synchronization and Consistency](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/data-synchronization-consistency.md) — Maintains consistent relational state across distributed clients using partial tables and durable streams. ([source](https://cdn.jsdelivr.net/gh/garden-co/jazz@main/README.md))
- [Data Change Notifications](https://awesome-repositories.com/f/networking-communication/publish-subscribe-systems/data-change-notifications.md) — Automatically refreshes the user interface by notifying subscribers of updates to database state changes across the network. ([source](https://classic.jazz.tools/docs))

### Security & Cryptography

- [Policy Enforcement](https://awesome-repositories.com/f/security-cryptography/enterprise-identity-providers/policy-enforcement.md) — Validates data access by matching user identity claims against server-enforced row security policies.
- [Row Level Security](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/data-resource-permissions/row-level-security.md) — Enforces granular permissions on individual records using identity-claim row security.
- [End-to-End Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption.md) — Protects sensitive information with end-to-end encryption to ensure data is only readable by authorized parties. ([source](https://classic.jazz.tools/docs))
- [Row-Level Security](https://awesome-repositories.com/f/security-cryptography/row-level-security.md) — Secures individual records using policies integrated with user identity claims to validate permissions. ([source](https://jazz.tools/))
- [Server-Enforced Access Policies](https://awesome-repositories.com/f/security-cryptography/server-enforced-access-policies.md) — Defines server-enforced rules to permit or reject specific read and write requests. ([source](https://jazz.tools/docs/install/client))
- [Relation Access Restrictions](https://awesome-repositories.com/f/security-cryptography/access-control/panel-access-controls/workspace-access-restrictions/relation-access-restrictions.md) — Blocks or allows read and write operations on relational data by defining server-enforced permissions. ([source](https://jazz.tools/docs/install/typescript-server))
- [Field Level Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption/field-level-encryption.md) — Supports end-to-end field encryption to protect sensitive data within the distributed database.
- [User Access Controls](https://awesome-repositories.com/f/security-cryptography/user-access-controls.md) — Regulates data access and editing through authentication and granular permission controls. ([source](https://classic.jazz.tools/docs))

### Software Engineering & Architecture

- [Reactive State Management](https://awesome-repositories.com/f/software-engineering-architecture/reactive-state-management.md) — Treats the relational database as the primary source of reactive state to automatically update user interfaces.
- [DSL-Driven Generation](https://awesome-repositories.com/f/software-engineering-architecture/schema-driven-generators/dsl-driven-generation.md) — Uses a custom domain-specific language to generate relational models and permission sets from a single source of truth.
- [Schema Evolution Strategies](https://awesome-repositories.com/f/software-engineering-architecture/schema-evolution-strategies.md) — Provides compatibility layers to translate data models between application versions without interrupting service.

### User Interface & Experience

- [Database-Backed State](https://awesome-repositories.com/f/user-interface-experience/reactive-state-managers/database-backed-state.md) — Update the user interface automatically as data changes by using a relational database interface as reactive state. ([source](https://cdn.jsdelivr.net/gh/garden-co/jazz@main/README.md))
- [Real-Time Collaborative Editing](https://awesome-repositories.com/f/user-interface-experience/real-time-collaborative-editing.md) — Provides automatic synchronization and versioned edit histories for simultaneous multi-user data editing.

### DevOps & Infrastructure

- [Geo-Optimized Distributed Hosting](https://awesome-repositories.com/f/devops-infrastructure/geo-optimized-distributed-hosting.md) — Provides a fault-tolerant, geo-optimized system that scales cloud infrastructure based on actual usage. ([source](https://jazz.tools/))
