README.md
A collaborative code editor built using Monaco Editor and Automerge. Supports multiple users editing the same document simultaneously, with features like real-time synchronization, offline editing, and cursor/selection sharing.
- Real-time collaborative editing with multiple users.
- Cursor and selection sharing between users.
- Peer-to-peer and WebSocket-based synchronization.
- Offline support with local changes synchronization once the connection is restored.
- Revert to snapshot hash functionality.
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
Make sure you have Docker installed on your machine and running.
-
Clone the repository:
git clone git@github.com:jernejc/monaco-automerge.git cd monaco-automerge
-
Start the application using Docker Compose:
docker-compose up --build
This will start both the client and server containers.
- Open the application in your browser. By default, it will run on
http://localhost:8080
. - Copy the URL and open it a new tab to start collaborating in real-time.
- Example url:
[host]/automerge:336uk9sp24iLqxcgi5k7BvV48a9f
- Link to snapshot with undo/redo option:
[host]/automerge:336uk9sp24iLqxcgi5k7BvV48a9f/[stateHash]
Make sure docker-compose is running all containers.
Run in tests
folder:
npm run setup
npm run test
Make sure you have all depedencies installed.
Run unit and integration tests from the client
or server
folder:
npm install
npm run test