Skip to content

Wire protocol

POST /conduit/update (web middleware: session + CSRF + signed:relative). Clients must use the signed URL from @conduitScripts / effects.endpoint — see Signed update requests.

Send X-CSRF-TOKEN (or _token) and JSON:

examples/conduit.json
{
"fingerprint": { "id": "...", "name": "counter" },
"serverMemo": { "data": { "count": 0 }, "checksum": "...", "errors": {} },
"updates": [["count", 1]],
"calls": [{ "method": "increment", "params": [] }],
"island": null
}

Response effects may include html, islands, data, errors, dispatches, queryString. The client applies data bindings before morphing so the UI moves first.

Snapshots HMAC with conduit.checksum_key or app.key. Tampered memos are rejected.

/conduit/conduit.js plus Alpine (CDN configurable via conduit.alpine_cdn). Prefer bundling Alpine yourself and loading only Conduit’s script in production.