GitHub

What is the project about?

Y-Sweet is an open-source document store and real-time sync backend. It's built on the Yjs CRDT library, allowing for collaborative editing and data synchronization.

What problem does it solve?

It provides a scalable and persistent backend for applications that require real-time collaboration features, similar to Figma. It solves the complexities of managing document storage, synchronization, and access control in collaborative applications.

What are the features of the project?

  • Persists document data to S3-compatible storage.
  • Scales horizontally using a session backend model.
  • Deploys as a native Linux process.
  • Provides document-level access control via client tokens.
  • Focuses on stability and performance, written in Rust.
  • Debugger for Yjs document and presence state.

What are the technologies used in the project?

  • Yjs: CRDT library for real-time collaboration.
  • Rust: Programming language for the server, emphasizing performance and stability.
  • S3-compatible storage: For document persistence (e.g., AWS S3, MinIO).
  • TypeScript: For client-side libraries and SDK.
  • React: Optional library of React hooks.
  • Next.js: Supported framework, with provided integrations.

What are the benefits of the project?

  • Real-time collaboration: Enables multiple users to edit documents simultaneously.
  • Scalability: Designed to handle increasing numbers of users and documents.
  • Persistence: Stores document data reliably.
  • Access control: Manages user permissions for documents.
  • Open-source: Freely available and customizable.
  • Performance: Rust implementation provides speed and efficiency.
  • Easy to use: create-y-sweet-app and provided libraries simplify integration.

What are the use cases of the project?

  • Collaborative text editors (like Google Docs).
  • Real-time whiteboarding applications.
  • Collaborative code editors.
  • Any application requiring shared data structures and real-time synchronization.
  • Applications that need a scalable, persistent backend for Yjs.
y-sweet screenshot