Excalidraw Yjs Starter

screenshot of Excalidraw Yjs Starter
nextjs
react

A lightweight collaborative drawing platform built with Excalidraw, Next.js, YJS and Socket.IO, enabling real-time whiteboard collaboration with persistent storage capabilities.

Overview

Excalidraw YJS Starter is an innovative minimalist project designed for those who want to deploy Excalidraw locally, leveraging powerful technologies like Next.js, YJS, and Socket.IO. It offers a robust solution for real-time collaboration, allowing multiple users to make visual changes simultaneously. The platform is not only user-friendly but also capable of persistent data storage via MongoDB, ensuring that collaborative efforts are seamlessly captured.

The combination of local IndexedDB and the use of MinIO for resource file management makes this starter kit a great choice for developers looking to build interactive applications. Whether you're a seasoned developer or just starting out, this setup offers a unique way to engage with the world of collaborative drawing tools.

Features

  • Real-Time Collaboration: Leveraging YJS enables multiple users to work together seamlessly, making adjustments and seeing updates in real-time.
  • Flexible Architecture: The project is structured to support both server-side and client-side configurations, allowing for customized setups.
  • Resource Storage with MinIO: Utilizes an S3-compatible storage solution for resource files, ensuring efficient management of attachments like images.
  • Easy Local Development: With a simple command to access the project via a local server, getting started is straightforward and user-friendly.
  • Data Persistence: MongoDB stores collaborative input, facilitating a reliable data storage solution that keeps all user contributions secure.
  • WebSocket Support: Enhanced collaboration features through ID-based routes, enabling users to interact using WebSockets for synchronous edits.
  • Extensibility: The project allows for further enhancements by referencing additional documentation for YJS and Socket.IO functionalities.
nextjs
Next.js

Next.js is a React-based web framework that enables server-side rendering, static site generation, and other powerful features for building modern web applications.

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

rollup
Rollup

RollupJS is a popular and efficient JavaScript module bundler that takes the code from multiple modules and packages them into a single optimized file, minimizing the overall size of the application and improving its performance.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.