PROJECT OVERVIEW
Realtime Collaborative Whiteboard A collaborative digital canvas where multiple users can draw, write, erase, and interact in real time using WebSockets (Socket.io). Purpose The goal of this project is to create a simple yet powerful online whiteboard where multiple users can draw together in real time.
This repository provides a starter boilerplate with:
- Next.js project scaffold
- App Router structure (
/appfolder) - A basic
/boardpage - Reusable React components (
Canvas,Toolbar) - Initial Socket.io backend route
- Clean folder structure ready for contributors
This project aims to create an easy, fast, and modern online whiteboard that can be used for:
- Brainstorming sessions
- Online study discussions
- Classroom explanations
- Quick sketch sharing
- Collaborative design
The goal is to build a scalable platform where contributors can add tools, improve UI, and enhance real-time syncing.
- Next.js (React-based framework)
- React.js
- Tailwind CSS (optional)
- Socket.io-client
- Next.js API route using Socket.io server
- Real-time drawing synchronized across all connected users
- Multiple brush sizes & colors
- Eraser tool
- Live cursors (see where others are drawing)
- Clear board for all users
- Save board as image
- Chat sidebar (optional future feature)
- Authentication (future extension)
- Next.js – Pages, routing, backend API routes
- React.js – UI components
- Socket.io – Real-time sync
- Canvas API – Drawing
- TailwindCSS (optional but recommended)
my-whiteboard/
│
├── app/
│ ├── page.js
│ ├── layout.js
│ ├── globals.css
│ │
│ ├── board/
│ │ └── page.js
│ │
│ └── api/
│ └── socket/
│ └── route.js
│
├── components/
│ ├── Canvas.js
│ └── Toolbar.js
│
├── public/
│ └── favicon.ico
│
├── package.json
└── next.config.js
- The Canvas component captures user drawing events
- Events are broadcast via Socket.io
- Other clients receive the events and update their canvas
- Pick an issue.
- Create a branch:
git checkout -b feature/issue-name - Implement your feature
- Open a Pull Request
- Tag maintainers for review
Canvas
Freehand drawing
Erasing
Color picker
Brush sizes
Clear screen
Sockets (Real-time)
Sync drawing strokes
User cursors
Undo/redo sync
UI/UX
Better toolbar
Responsive design
Multi-board rooms
Infra
Deployment (Vercel)
Rate limiting
Optimizing socket performance