Multi-tenancy: strict per-connection isolation

One scratchpad stream on one literal topic. Pick Acme below and everything this connection touches will live under @t/acme/... - a Globex tab literally cannot subscribe to it, not even by hand-rolled wire frames. The handlers are byte-identical to a single-tenant app; the framework scopes the topics, the app scopes its own Redis keys via ctx.tenantId.

Active tenant (server-trusted, from ctx.tenantId)
none confirming over WS...

Switching reloads the page: the tenant resolver runs once per connection at WebSocket upgrade, never mid-connection.

Picking a tenant will isolate EVERY demo page on this site to it - presence counts, boards, chat. Clearing it returns you to the shared world.

Public scratchpad last 20 notes, live

wire demos:tenants:pad
  • No notes in this scope yet.