Channels

Pick a channel — the route loader subscribes you via a server function (which calls the WS DO via RPC) and prefetches recent history. Once joined, live messages stream in over your WebSocket.

Open in two browser windows, navigate into the same channel from each, and chat — every message round-trips through a server function (validation + rate limit + DB persist), then fans out via DO RPC to all connected subscribers.