The AI-Powered Real-Time Collaborative Whiteboard
SyncCanvas is an infinite multiplayer whiteboard where teams can brainstorm, design, plan, and collaborate in real time. Think Miro + Excalidraw + AI Copilot all in one lightweight, modern workspace.
- Live Multiplayer: Instant synchronization across devices using WebSockets and
Yjs. - Live Cursors & Online Status: See exactly who is in your room and where their mouse is in real-time.
- Guest Mode: Instantly hop into a board anonymously without needing to create an account.
- Automatically join the same collaborative room as anyone on the exact same physical WiFi network!
- No need to share linksβjust click "Join WiFi Room" and instantly start drawing with the person next to you.
- Freehand Drawing: Smooth Pen tool with dynamic color selection.
- Shapes & Text: Rectangles, circles, sticky notes, and text blocks.
- Pan & Zoom: Infinite panning and zooming for massive diagrams.
- Powered by
Fabric.js.
- Type a prompt like "Generate a mind map for machine learning", and the Gemini 2.5 Flash AI will instantly generate and organize a beautiful structure of nodes and shapes directly onto your canvas.
- Frontend: React 19, Vite, Tailwind CSS v4, Framer Motion
- Canvas Engine: Fabric.js
- Collaboration:
y-websocketandyjs(Peer-to-peer data sync) - Backend / Deployment: Express.js (Node.js) server serving the static files and WebSockets simultaneously.
- Database & Auth: Firebase Firestore & Firebase Auth
-
Install Dependencies
npm install
-
Environment Variables Create a
.envfile in the root directory (or ensure they are set in your environment):GEMINI_API_KEY=your_gemini_api_key
-
Start the Development Server
npm run dev
The server will start on
http://localhost:9123.
SyncCanvas uses an integrated Express + WebSocket server, which requires a persistent runtime (like Render or Railway) instead of static hosting.
- Create a Web Service on Render.com connected to your repository.
- Set the Build Command:
npm install && npm rebuild esbuild && npm run build
- Set the Start Command:
NODE_ENV=production node dist/server.cjs
- Add your Environment Variables:
GEMINI_API_KEY=...
- Deploy!
Think Together. Build Together. Instantly.