Real-time collaboration made simple - A powerful platform for collaborative document editing and whiteboard drawing with cloud storage and multi-user support.
- Real-time editing with live cursor tracking
- Multi-user collaboration with instant updates
- Cloud storage - Save and access documents from anywhere
- Personal library - Manage all your documents in one place
- Cross-device sync - Work seamlessly across all devices
- Secure authentication - Your documents are private and secure
- Interactive whiteboard for diagrams and sketches
- Real-time collaboration (Beta feature)
- Multi-user cursors - See where others are working
- Cloud save - Store drawings online
- Personal drawings library - Access your creations anywhere
- Secure user registration and login
- JWT-based authentication
- Protected routes and personal workspaces
- MongoDB integration for reliable data storage
- Cross-device synchronization
- Personal workspace for each user
- Go - High-performance backend server
- Gin Framework - Fast HTTP web framework
- WebSockets - Real-time bidirectional communication
- MongoDB - NoSQL database for document storage
- JWT - Secure authentication tokens
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- WebSocket Client - Real-time communication
- Go 1.19+ installed
- Node.js 18+ installed
- MongoDB database (local or cloud)
-
Navigate to server directory
cd server
-
Install dependencies
go mod tidy
-
Set up environment variables Create a
.env
file in the server directory:MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key PORT=8080
-
Run the server
go run main.go
Server will start on
http://localhost:8080
-
Navigate to client directory
cd client
-
Install dependencies
npm install
-
Set up environment variables Create a
.env.local
file in the client directory:NEXT_PUBLIC_API_URL=http://localhost:8080 NEXT_PUBLIC_WS_URL=ws://localhost:8080
-
Run the development server
npm run dev
Frontend will start on
http://localhost:3000
- Visit the homepage
- Choose your tool: Doc Online or ExcaliDraw
- Click "Create New Session"
- Start collaborating - Share the URL with others
- Get the session ID from a collaborator
- Click "Join Existing Session"
- Enter the session ID
- Start collaborating in real-time
- Sign in to access personal features
- View your saved documents and drawings
- Access your work from any device
- Organize your personal library
Collabify/
├── server/ # Go backend
│ ├── main.go # Main server file
│ ├── auth/ # Authentication handlers
│ ├── docs/ # Document management
│ ├── drawings/ # Drawing management
│ └── socket/ # WebSocket handlers
└── client/ # Next.js frontend
├── app/ # Next.js App Router
├── components/ # React components
├── contexts/ # React contexts
└── public/ # Static assets
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Yash Raj
- LinkedIn: @yash-raj-in
- Twitter: @ya_shtwt
- YouTube: @yashraj.10
Give a ⭐️ if this project helped you!
Built with ❤️ by Ya.sh
Real-time collaboration made simple