{"repo":"galelo04/collab-ide","free":true,"listed":false,"github":"https://github.com/galelo04/collab-ide","clone":"git clone https://github.com/galelo04/collab-ide.git","description":"Browser-based collaborative IDE with real-time CRDT sync, per-project Docker sandbox terminals, and cursor awareness, built in Go, Node.js, and React.","language":"TypeScript","stars":22,"topics":["collaborative-editing","crdt","docker","go","ide","jwt","monaco","nodejs","postgresql","react"],"license":"Apache-2.0","category":"deployment-docker-iac","readme_excerpt":"Collab-IDE A browser-based collaborative IDE. Multiple users can open the same project, edit the same file simultaneously, and run commands in an isolated terminal, all without installing anything locally. https://github.com/user-attachments/assets/198e0505-e7cf-41fa-b9ef-d731da498eeb --- Architecture The system has three long-running services and one ephemeral layer: - Go API ( cmd/api , port 8080): WebSocket hub manager, REST handlers, auth, file I/O, git commits, Docker orchestration. - Node Sync Service ( internal/sync , port 3000): holds the authoritative in-memory Yjs CRDT state for all open documents. The Go API talks to it over HTTP. - PostgreSQL : stores users, projects, and project metadata. - Alpine sandbox containers : short-lived, one per open project, spawned on-demand by the Go API through the Docker socket. --- Collaboration Editor collaboration uses Yjs CRDTs. The Go API does not hold document state; it proxies updates to and from the Node sync service via HTTP. Awareness (cursor positions, selections, user labels) follows the same path. When a user saves a file, the Go API writes the plain-text content to disk and creates a git commit in the project repository. --- Terminal Each project gets one Alpine container, spawned when the first user opens the terminal tab and destroyed when the last user disconnects. The Go API owns a single permanent goroutine reading from the Docker PTY stream; all WebSocket clients share that stream. Commands are synchronised with","default_branch":null,"files":null,"tree":[],"storefront":"/r/galelo04","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/galelo04/collab-ide/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}