A real‑time collaborative coding environment inspired by Project Idx, enabling multiple users to edit and execute code together seamlessly.
- Real‑Time Collaboration: Join or create rooms for live coding sessions with multiple users.
- Integrated File System: Manage project files and directories within a tree structure.
- WebSocket‑Powered Rooms: Low-latency updates and synchronization across participants.
- Containerized Code Execution: Isolated, secure execution of user code using Docker containers.
- Backend: Node.js, Express.js, WebSockets
- Frontend: React, Monaco Editor, React Query (Queries & Mutations)
- Database: MongoDB
- Containerization: Docker
- CLI Tools: Exterm for terminal emulation
-
Install dependencies
npm install
-
Environment Variables
Create a
.env
file in the root directory and set the following:MONGODB_URI=<your-mongo-connection-string> PORT=4000
-
Start MongoDB
# If running locally mongod --dbpath /path/to/your/db
-
Start Docker daemon Ensure Docker is running before launching the app.
-
Development mode
npm run dev
Runs both backend and frontend with hot-reloading.
-
Production mode
npm start
The backend will be available at http://localhost:4000
and the frontend at http://localhost:3000
by default.
├── client/ # React frontend
│ ├── src/
│ └── public/
├── server/ # Express backend
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── index.js
├── docker/ # Docker configuration and scripts
├── .env.example
└── README.md
Contributions, issues, and feature requests are welcome! Please check issues and follow these steps:
- Fork the project
- Create your feature branch (
git checkout -b feature/my-feature
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature/my-feature
) - Open a Pull Request
- GitHub Repo: Nabyendu48/CodeSandbox