Two lanes, one connection.
Presence rides unreliable datagrams — latest-wins, droppable, a ~20 Hz firehose. Events ride a reliable, ordered stream. A plain WebSocket has only one lane, so it head-of-line-blocks under loss.
The E2B of UDP. Spin up a real-time room in under 100 ms, pay nothing while it sits idle, and never touch the QUIC, cert, or routing plumbing.
One WebTransport connection, two lanes, and a room that doesn't exist until you arrive. Here is the exact path an inbound packet takes.
joinRoom() opens one WebTransport (QUIC) connection to a room URL. WebTransport hit browser Baseline in March 2026 — no socket fallback, no cert dance, no plumbing of your own.
The edge reads each inbound QUIC packet's Connection-ID and forwards it across the netns boundary to the exact microVM serving that room. The netns-crossing dataplane is proven live.
An idle room doesn't exist. The first inbound packet wakes its Firecracker µVM in <100ms — inside the QUIC handshake's ~1s retransmit window (1× PTO, RFC 9002), so the client never sees the cold start.
presence rides unreliable datagrams (latest-wins, ~20Hz, droppable); events ride a reliable ordered lane. A plain WebSocket can't do the unreliable lane — it head-of-line-blocks under loss.
No QUIC handshake, no cert pinning, no server to deploy. The default room is a pure relay — join it, set your state, listen for everyone else's. The two lanes ride one WebTransport connection.
// 1. join a room — a pure relay, zero server code
import { joinRoom } from "@silt/client";
const room = await joinRoom("https://demo.silt.run/room/graveyard", { id });
// 2. others' positions stream in on the datagram lane
room.on("presence", (peerId, state) => draw(peerId, state));
// 3. broadcast yours — latest-wins, ~20Hz, droppable
room.presence.set({ x, y, heading });The plumbing a multiplayer, live-media, or telemetry workload needs — the unreliable lane, instant cold starts, and nothing to operate when idle.
Presence rides unreliable datagrams — latest-wins, droppable, a ~20 Hz firehose. Events ride a reliable, ordered stream. A plain WebSocket has only one lane, so it head-of-line-blocks under loss.
A room doesn't exist until someone arrives. No traffic, no VM, no bill.
The room VM restores inside the QUIC handshake's retransmit window — the client never sees the cold start.
The default room is a pure relay. Bring a client and skip the backend entirely.
Shipped across browsers in March 2026 — the iOS blocker is gone. Real UDP in the browser, no plugins.
A WebSocket gives you one reliable lane. Serverless scales to zero but can't speak datagrams. A game-server fleet speaks UDP but never sleeps. Silt is the only one with both lanes, true scale-to-zero, and zero QUIC plumbing — in one place.