{"repo":"mizuka-wu/excalidraw-yjs-starter","free":true,"listed":false,"github":"https://github.com/mizuka-wu/excalidraw-yjs-starter","clone":"git clone https://github.com/mizuka-wu/excalidraw-yjs-starter.git","description":"A lightweight collaborative drawing platform built with Excalidraw, Next.js, YJS and Socket.IO, enabling real-time whiteboard collaboration with persistent storage capabilities.","language":"TypeScript","stars":17,"topics":["collaboration","docker","docker-compose","excalidraw","nextjs","self-hosted","socket-io","yjs"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"Excalidraw YJS Starter English 中文 Introduction This is a minimalist starter project for locally deploying Excalidraw based on Next.js, YJS, and Socket.IO. Through YJS, it enables real-time collaboration and data storage. The system uses MinIO client for resource file storage and MongoDB for data persistence. Online Demo To experience a version based on local IndexedDB and tab-to-tab collaboration, please visit: https://excalidraw-yjs-starter.vercel.app/ Note: Due to Vercel limitations, the /:id route will not support real-time collaboration in the online demo. However, you can still enable local storage by adding ?indexeddb=true to the URL. System Architecture Project Structure - Server-side YJS configuration : Located in src/server/collab.ts - Client-side YJS configuration : Located in src/excalidraw/collab.ts - Editor configuration : Located in src/excalidraw/index.tsx - Resource management : Located in src/excalidraw/store.ts Routing - Default route ( / ) : Uses local IndexedDB with WebRTC for saving and collaboration between pages - ID-based route ( /:id ) : Uses WebSocket for collaboration between clients with the same ID - To also save to local IndexedDB, add ?indexeddb=true to the URL query parameters Installation Local Development Open http://localhost:3000 with your browser to see the result. Production Deployment Build and Run Using Docker Extending Functionality If you need to extend the YJS and Socket.IO server capabilities, please refer to the documentation for y","default_branch":null,"files":null,"tree":[],"storefront":"/r/mizuka-wu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mizuka-wu/excalidraw-yjs-starter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}