Realtime · Socket.IO

Org & project

Listen while connected — you are already in org:<orgId>.

project:created

json
{
  "project": {
    "_id": "6958511e8397f2dfa88090d8",
    "name": "New App",
    "org": "69566c4ef0bdc3ae3e81b10a",
    "slug": "new-app",
    "settings": {},
    "createdAt": "2026-03-18T10:00:00.000Z",
    "updatedAt": "2026-03-18T10:00:00.000Z"
  },
  "timestamp": "2026-03-18T10:00:00.500Z"
}
{
  "project": {
    "_id": "6958511e8397f2dfa88090d8",
    "name": "New App",
    "org": "69566c4ef0bdc3ae3e81b10a",
    "slug": "new-app",
    "settings": {},
    "createdAt": "2026-03-18T10:00:00.000Z",
    "updatedAt": "2026-03-18T10:00:00.000Z"
  },
  "timestamp": "2026-03-18T10:00:00.500Z"
}

project:updated

json
{
  "project": { "_id": "6958511e8397f2dfa88090d8", "name": "Renamed", "updatedAt": "..." },
  "timestamp": "2026-03-18T10:05:00.000Z"
}
{
  "project": { "_id": "6958511e8397f2dfa88090d8", "name": "Renamed", "updatedAt": "..." },
  "timestamp": "2026-03-18T10:05:00.000Z"
}

Some code paths add extra keys (e.g. partial update info); always merge project by _id.

project:deleted

json
{
  "projectId": "6958511e8397f2dfa88090d8",
  "timestamp": "2026-03-18T10:10:00.000Z"
}
{
  "projectId": "6958511e8397f2dfa88090d8",
  "timestamp": "2026-03-18T10:10:00.000Z"
}

Subscribe to a single project

javascript
socket.emit("subscribe:project", "6958511e8397f2dfa88090d8")
socket.emit("subscribe:project", "6958511e8397f2dfa88090d8")