https://jazz.tools/ HomeSync & Storage MeshDocsBlog[?]Releases[?]Roadmap[?] Home HomeSync & Storage MeshDocs Blog[?]Releases[?]Roadmap[?] Home Instant sync. A new way to build apps with distributed state. Cross-device sync Real-time multiplayer Team/social features Built-in permissions Cloud sync & storage On-device storage Instant UI updates E2EE & signatures Hard things are easy now. Jazz is an open-source toolkit that replaces APIs, databases and message queues with a single new abstraction: "Collaborative Values" -- distributed state with secure permissions built-in. Features that used to take months to build now work out-of-the-box. First impressions... A chat app in 174 lines of code. main.tsx app.tsx schema.ts chatScreen.tsx ui.tsx tsx import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; import { createJazzReactApp, DemoAuthBasicUI, useDemoAuth } from "jazz-react"; import { App } from "./app.tsx"; const Jazz = createJazzReactApp(); export const { useAccount, useCoState } = Jazz; function JazzAndAuth({ children }: { children: React.ReactNode }) { const [auth, state] = useDemoAuth(); return ( <> {children} {state.state !== "signedIn" && } ); } createRoot(document.getElementById("root")!).render( ); result [ ] Collaborative Values Your new building blocks. Based on CRDTs and public-key cryptography, CoValues... * Can be read & edited like simple local JSON state * Can be created anywhere, are automatically synced & persisted * Always keep full edit history & author metadata * Automatically resolve most conflicts Bread-and-butter datastructures CoMap * Collaborative key-value map * Possible values: + Immutable JSON & other CoValues CoList * Collaborative ordered list * Possible items: + Immutable JSON & other CoValues CoPlainText & CoRichText Coming soon * Collaborative plain-text & rich-text * Gracefully prevents most editing conflicts * Rendered as markdown, HTML, JSX, etc. CoStream * Collection of independent per-user items streams: + Immutable JSON & other CoValues * Great for presence, reactions, polls, replies etc. First-class files & binary data BinaryCoStream * Represents a file or live binary stream * Can be referenced and synced like any other CoValue * Can easily be converted from/to browser Blobs * -> BinaryCoStream -> Blob -> BlobURL ImageDefinition * Represents multiple resolutions of the same image * Can be progressively loaded, including super fast blur preview & image size info Secure permissions, authorship & teams Group * A scope where specified accounts have roles (reader/writer/ admin). * A Group owns CoValues, with access right determined by group roles. * Accounts can be added to groups directly or using shareable invite secrets. Account * Represents a single user and their signing/encryption keys. * Has a private account root and a public profile + Can contain arbitrary app-specific data The Jazz Toolkit A high-level toolkit for building apps around CoValues. Supported environments: * Browser (sync via WebSockets, IndexedDB persistence) + React + Vanilla JS / framework agnostic base * React Native Coming soon * NodeJS (sync via WebSockets, SQLite persistence) Coming soon * Swift, Kotlin, Rust Coming later Auto-sub Let your UI drive data-syncing. * Load and auto-subscribe to deeply nested CoValues with a reactive hook (or callback). * Access properties & metadata as plain JSON. * Make granular changes with simple mutators. * No queries needed, everything loads on-demand: profile?.tweets?.map(tweet => tweet?.text) Cursors & carets Ready-made spatial presence. * 2D canvas cursors Coming soon * Text carets Coming soon * Element-based focus-presence Coming soon * Scroll-based / out-of-bounds helpers Coming soon Auth Providers Plug and play different kinds of auth. * DemoAuth (for quick multi-user demos) * WebAuthN (TouchID/FaceID) * Auth0, Clerk & Okta Coming soon * NextAuth Coming soon Two-way sync to your DB Add Jazz to an existing app. * Prisma Coming soon * Drizzle Coming soon * PostgreSQL introspection Coming soon File upload & download Just use . * Easily convert from and to Browser Blobs * Super simple progressive image loading Video presence & calls Stream and record audio & video. * Automatic WebRTC connections between Group members Coming soon * Audio/video recording into BinaryCoStreams Coming soon Jazz Mesh Serverless sync & storage for Jazz apps To give you sync and secure collaborative data instantly on a global scale, we're running Jazz Mesh. It works with any Jazz-based app, requires no setup and has straightforward, scale-to-zero pricing. Jazz Mesh is currently free -- and it's set up as the default sync & storage peer in Jazz, letting you start building multi-user apps with persistence right away, no backend needed. -> Learn more about Jazz Mesh Get Started * Read the docs * Join our Discord (c) 2024 Garden Computing, Inc. Resources ToolkitSync & Storage MeshDocs Community GitHub[?]Discord[?]Twitter[?] News Blog[?]Releases[?]Roadmap[?]