This is a browser-based code editor inspired by VS Code, designed to allow users to:
- Create projects
- Manage files and folders
- Edit multiple files with syntax highlighting
- Collaborate in real-time with other users
The project is currently centralized, with Socket.IO powering real-time collaboration.
Future plans include decentralization, offline support, and end-to-end encryption.
Live Demo: https://web-editor-one.vercel.app/
GitHub Repo: https://github.com/Ballursajeed/web-editor
- Project creation
- File and folder management (CRUD)
- Multi-file editing with Monaco Editor
- Syntax highlighting for JS, TS, Python, HTML, CSS, etc.
- Language icons for easy identification
- User authentication (sign up / login)
- Personalized dashboard showing user projects
- Session-based sharing (unique links)
- Role-based access (Viewer / Editor)
- Live code sync (basic Socket.IO prototype)
- Multi-cursor tracking with usernames
- Live presence awareness (who is online)
- Cursor desync occurs with rapid typing
- Conflict resolution for simultaneous edits not fully implemented
- Offline editing and decentralized syncing are planned but not yet implemented
Frontend: React, Monaco Editor, Socket.IO-client, Vite
Backend: Node.js, Express, Socket.IO-server, MongoDB
Authentication: JWT + Cookies
Deployment: Vercel (Frontend), Node.js server
-
Frontend
- React + Monaco Editor for the editor interface
- File explorer UI displays projects, folders, and files
- Sends edits and cursor moves via Socket.IO to backend
-
Backend
- Express server with REST APIs for projects, files, and folders
- MongoDB stores hierarchical project data with parentId references
- Socket.IO manages real-time communication in sessions
-
Real-Time Flow
- Users join a session via a unique link
- Editor changes are emitted to the server (
edits) - Server broadcasts changes to all connected collaborators
- Cursor positions are tracked and updated live
- Sign up / login
- Create a new project
- Add folders and files
- Edit code with syntax highlighting
- Share project session link with collaborators (role-based access)
- See live edits and cursor movements (experimental)
- Fix cursor desync and optimize live collaboration
- Offline editing with automatic sync
- Decentralized peer-to-peer collaboration
- End-to-end encryption for secure editing
- CRDT/Y.js integration for conflict resolution and scalability
Videos showing feature progress are available via LinkedIn posts.
- Initial features: Core editor, folder structure, multi-file editing
- Later features: Real-time collaboration, session management, cursor tracking, role-based access