A real-time collaborative whiteboard inspired by Excalidraw, built with React, TypeScript, SCSS, Konva, and Socket.io. Collabraw enables multiple users to draw, create shapes, add text, and collaborate seamlessly on a shared infinite canvas in real time.
This repository contains the frontend application. The backend server that powers real-time collaboration is available in the Backend Repository linked below.
- 🌐 Live link : https://white-board-front-end.vercel.app/
- ⚡ Real-time collaborative whiteboard
- 👥 Live collaboration powered by Socket.io
- 📝 Name-based user identification
- 🏠 Automatic room creation and joining
- 👥 Maximum of 5 users per room
- ✏️ Freehand drawing
- 🔲 Rectangle, Circle, Line, and Arrow tools
- 🔤 Add and edit text on the canvas
- 🎨 Customizable drawing colors
- 🧽 Eraser tool
- ↩️ Undo & Redo
- 🔍 Zoom and Pan canvas
- 📱 Responsive interface
- 🌙 Clean and minimal UI
- Open the application and enter your name.
- The frontend establishes a Socket.io connection with the backend.
- A collaboration room is automatically created or joined.
- Each room supports up to 5 participants.
- Every drawing action—including freehand strokes, shapes, text, erase, undo, and redo—is synchronized instantly across all connected users.
- Any user joining or leaving the room is reflected in real time.
- React
- TypeScript
- SCSS
- Konva
- Socket.io Client
- Lucide React
- Vite
This frontend communicates with a dedicated backend server for real-time collaboration.
Backend Repository: 👉 https://github.com/AzadTom/Collabraw-Backend
git clone https://github.com/AzadTom/Collabraw.git
cd Collabrawnpm installor
pnpm installCreate a .env file in the project root.
VITE_SOCKET_URL=http://localhost:5000Update the URL if your backend is running on a different host or port.
npm run devVisit:
http://localhost:5173
Collabraw
│
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ ├── constants/
│ ├── hooks/
│ ├── pages/
│ ├── services/
│ ├── styles/
│ ├── types/
│ ├── utils/
│ └── main.tsx
├── package.json
└── README.md
Update the folder structure if your project differs.
- Sticky Notes
- Image Upload
- Export PNG
- Export SVG
- Export PDF
- Keyboard Shortcuts
- Comments
- Voice Chat
- Shape Libraries
- Authentication
- Shared Room Invitations
- Persistent Whiteboard Storage
Contributions are welcome!
- Fork the repository.
- Create a feature branch.
git checkout -b feature/my-feature- Commit your changes.
git commit -m "Add my feature"- Push your branch.
git push origin feature/my-feature- Open a Pull Request.
If you found this project useful, consider giving it a ⭐ on GitHub. It helps others discover the project and supports future development.
