Skip to content

Compatibility ​

synkd aims to keep PartyKit-shaped party code portable. Some platform features differ between Node and a Durable Objects host.

Runtime matrix ​

CapabilityNode (synkd up)Durable Objects (synkd up --durable / deploy)
/parties/:party/:roomYesYes
onConnect / onMessage / broadcastYesYes
Connection tagsUserland on ConnectionNative getTags when the host supports it
Hibernatable WebSocketsIdle empty rooms unloadPlatform acceptWebSocket
Close 1012 on move or reloadYesYes (ownership move)
Per-room storageSQLite filesDurable Object storage
AlarmsPolled schedulerDO alarm()
Yjs@synkd/ySame party, wrapped for DO
request.cf geoNot availableNot available
Workers AI / VectorizeNot a goalNot a goal
partysocket clientsYesYes

Platform notes ​

  • Prefer Node for everyday local work. Use Podman or Docker for synkd up --durable and production fleets.
  • One Durable Objects fleet is one trust domain. Do not co-host hostile tenants on the same fleet. See Security.

Probe live capabilities ​

sh
synkd up --durable

Then:

sh
curl -s "http://127.0.0.1:9876/parties/main/healthz?token=dev-token&synkd_caps=1"

Setup guide: Deploy.

Look for acceptWebSocket, getWebSockets, and getTags in the response.

Known gaps versus PartyKit cloud ​

  1. No *.partykit.dev hosted control plane or preview hosts.
  2. No Workers AI or Vectorize bindings.
  3. Node storage values are JSON-serialised, not a full structured clone.
  4. Multi-tenant SaaS needs separate fleets, not soft tenancy inside one fleet.

What to do next ​

PartyKit-compatible rooms on infrastructure you run.