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
.envfile 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