Canverse is a collaborative online whiteboard that supports real-time drawing, voice chat, and multi-user presence; ideal for remote teams, classrooms, and creative collaboration.
- Real-time drawing: Pen, eraser, shapes, arrows, and text tools.
- Selection & transformation: Select, move, resize, and delete elements.
- Multi-user presence: See other users' cursors and avatars live.
- Voice chat: Join a voice channel for seamless audio collaboration.
- Room system: Create or join rooms via invite links.
- Frontend: React, TypeScript, Konva, TailwindCSS
- Backend: Node.js, Express, Socket.IO, Redis
- Node.js (v18+ recommended)
- npm
Clone the repository:
git clone https://github.com/sameersharmadev/canverse.git cd canverseInstall dependencies:
npm install cd backend npm install cd ..
Configure environment variables:
VITE_BACKEND_URL=http://localhost:3001Replace with your backend URL in production.
CLIENT_URL=http://localhost:5173 PORT=3001 HOST=0.0.0.0 REDIS_URL=your-redis-url NODE_ENV=developmentReplace with your actual frontend URL, Redis credentials, and production values as needed.
Start the backend:
cd backend npm run devStart the frontend:
npm run dev
Open http://localhost:5173 in your browser.
- Frontend: Deploy the
dist/folder using Vercel, Netlify, or any static host. - Backend: Deploy the backend (Node.js server) on Render, Google Cloud, or any VM.
Make sure to set environment variables and open necessary ports.
canverse/ ├── backend/ # Node.js backend ├── src/ # React frontend ├── public/ # Static assets ├── package.json ├── tsconfig*.json ├── vite.config.ts └── README.md Pull requests and issues are welcome! No strict guidelines for commit messages or pull requests, just make sure it's clear and understandable.

