[<-] Back

Collaborate VM

Go, React 19, Docker, WebSocket · 2026 · 1 min read

A collaborative AI coding workspace that runs sandboxed dev environments in Docker containers. Users get a browser-based IDE — terminal, file editor, live preview, and a built-in AI agent (Goose) — without installing anything locally. Go + chi backend with WebSocket terminal I/O, React 19 / Monaco / xterm frontend, subdomain-routed preview proxy. Pre-1.0.

Architecture

flowchart TB
    browser["Browser SPA<br/>React 19 · Vite · Monaco · xterm"]

    subgraph backend ["Backend (:4100)"]
        api["Go API<br/>chi router"]
        ws["WebSocket<br/>terminal I/O<br/>port scanning"]
        proxy["/proxy/&lt;session&gt;/&lt;port&gt;/*"]
    end

    pp["Preview Proxy (:8880)<br/>&lt;port&gt;-&lt;session&gt;.preview.&lt;domain&gt;"]

    subgraph container ["Docker container (ace-workspace)"]
        ws_dir["/workspace<br/>user code"]
        goose["Goose CLI<br/>AI agent"]
        tunnel["Tunnel :59000<br/>→ any internal port"]
    end

    browser -->|"REST"| api
    browser -->|"WS"| ws
    browser -->|"/proxy/*"| proxy
    browser -.->|"&lt;port&gt;-&lt;session&gt;.preview"| pp
    api --> container
    ws --> container
    proxy --> tunnel
    pp --> tunnel

Tech stack

Layer Stack
Frontend React 19, Vite 6, TypeScript, Tailwind 4, xterm, Monaco
Backend Go, chi, gorilla/websocket, Docker SDK, SQLite
Preview proxy Go (stdlib only, zero deps)
Infrastructure Docker, Lima (macOS), Firecracker (Linux, planned)