A real-time, full-stack collaborative code editor built with React and Firebase. Create coding rooms, collaborate with others, and write code together in real-time. Perfect for pair programming, teaching, and remote collaboration.
View Demo · Report Bug · Request Feature
-
🔄 Real-Time Collaboration
- Instant code synchronization between users
- Live cursors and selections
- No lag or delays
-
🔒 Secure Room Management
- Create public or private rooms
- Unique room IDs
- Customizable access controls
-
👥 User System
- Google authentication integration
- Guest access available
- Multiple permission levels
-
💬 Communication Tools
- Built-in chat system
- Activity notifications
- User presence indicators
-
⚙️ Customization
- Multiple editor themes
- Language syntax highlighting
- Adjustable font settings
- Configurable keybindings
Try the live demo: Collaborative Code Editor Demo
-
Frontend
- React.js
- CodeMirror 6
- Material-UI
-
Backend
- Firebase
- Firestore
- Authentication
- Hosting
- Firebase
- Node.js >= 14.x
- npm >= 6.x
- Firebase account
- Google Cloud Platform account (for authentication)
-
Clone the repository
git clone https://github.com/khamessitaha/cce.git cd cce
-
Install dependencies
npm install
-
Create a
.env
file in the root directory and add your Firebase configurationREACT_APP_FIREBASE_API_KEY=your_api_key REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain REACT_APP_FIREBASE_PROJECT_ID=your_project_id REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_sender_id REACT_APP_FIREBASE_APP_ID=your_app_id
-
Start the development server
npm start
-
Login/Signup and Create a Room
- Login/Signup and navigate to your dahsboard
- Click "New Room" on the dashboard
- Choose room settings (public/private)
- Share the room ID with collaborators
-
Joining a Room
- Enter room ID
- Start collaborating!
-
Install Firebase CLI
npm install -g firebase-tools
-
Login to Firebase
firebase login
-
Initialize Firebase
firebase init
-
Build the project
npm run build
-
Deploy to Firebase
firebase deploy
- Create a new Firebase project
- Enable Authentication and Firestore
- Add your web app to the project
- Copy the configuration to your
.env
file
Variable | Description |
---|---|
REACT_APP_FIREBASE_API_KEY |
Your Firebase API key |
REACT_APP_FIREBASE_AUTH_DOMAIN |
Firebase auth domain |
REACT_APP_FIREBASE_PROJECT_ID |
Firebase project ID |
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Taha Khamessi - @Instagram - taha.khamessi@gmail.com
Project Link: https://github.com/khamessitaha/cce