Connecting
Pass your JWT in theauth.token field of the Socket.io handshake options. The server validates the token before accepting the connection — unauthenticated connections are rejected immediately.
http://localhost:8080 with your server’s address in production.
On a successful connection, the server automatically joins your socket to a private room identified by your userId. All events are scoped to that room.
Room model
Every event is delivered only to the room that matches your user ID. You receive events for all projects and builds associated with your account, and no events for other users’ builds. If you have multiple browser tabs or clients connected with the same token, all of them receive the same events.Events are not scoped to an individual project — they fire for every build and
deployment under your account. Filter by
projectId in your event handlers if
you need to isolate activity for a specific project.Events
All events are emitted from the server to the client. There are no client-to-server events in the current API.build_logs
Real-time output from the Docker image build step. Each line of Docker’s stdout is emitted as a separate event. Payloadbuild_errors
Docker build stderr output. Lines that contain the keywordserror, failed, fatal, or exception (case-insensitive) are classified as "error"; all other stderr lines are "info".
Payload
run_logs
Standard output from the container execution step — the output of your install command and build command running inside the container. Payloadrun_error
Standard error from the container execution step. PayloadbuildStatusUpdate
Emitted when a build transitions between statuses. Use this event to update progress indicators or surface pass/fail results in your UI. PayloaddeploymentUpdate
Emitted when a deployment record is created or updated. Theurl field contains the subdomain URL where the build output is being served.
Payload