Getting Started
Gallery examples
Copy-paste Vite apps on the same room Durable Object.
Each template is a product shape, not a claim that FluxyChat is MQTT, netcode, or an SFU. The Do not column is the scope of that example. Open two tabs unless noted. Worker URL plus a pk_ / public room id or a member JWT.
npx @fluxy-chat/create-fluxy-chat@latest my-cursors --example live-cursors
npx @fluxy-chat/create-fluxy-chat@latest my-cursors-chat --example live-cursors-chat
npx @fluxy-chat/create-fluxy-chat@latest my-vanilla --example javascript-live-cursors
npx @fluxy-chat/create-fluxy-chat@latest my-doc --example tiptap-room
npx @fluxy-chat/create-fluxy-chat@latest my-war --example war-room
npx @fluxy-chat/create-fluxy-chat@latest my-iot --example iot-panel
npx @fluxy-chat/create-fluxy-chat@latest my-draw --example draw
npx @fluxy-chat/create-fluxy-chat@latest my-deal --example deal-room
npx @fluxy-chat/create-fluxy-chat@latest my-nda --example negotiation-room
npx @fluxy-chat/create-fluxy-chat@latest my-room --example shared-ai-room
npx @fluxy-chat/create-fluxy-chat@latest my-fleet --example fleet-panel
npx @fluxy-chat/create-fluxy-chat@latest my-game --example game-tick
npx @fluxy-chat/create-fluxy-chat@latest my-stage --example voice-stage
npx @fluxy-chat/create-fluxy-chat@latest my-comments --example comments-board
npx @fluxy-chat/create-fluxy-chat@latest my-polls --example polls
npx @fluxy-chat/create-fluxy-chat@latest my-board --example whiteboard| Example | Primitive | Scope (do not stretch) |
|---|---|---|
live-cursors | sendCursor / type: cursor | Not client_event for pointers |
live-cursors-chat | cursors + useChat | One JSON socket. ?overlay=1 is OBS-transparent, not Overlayed Electron |
javascript-live-cursors | vanilla connect + type: cursor | React not required |
tiptap-room | Yjs useStorage + Collaboration | Not a second CRDT |
war-room | useChat + invokeAgent + AvatarStack | Same room WS. scheduleAgent is room-DO cron, not a CF Agents SKU |
iot-panel | HTTP ingest + iot.reading | Not MQTT. Hosted: iotAutoAgentId on publish-config invokes an agent without @mention. |
draw | cursors + client-ephemeral-dot | Not 60 Hz broadcast |
deal-room | quorum + visibility whisper + invokeAgent + feeds | Two tabs: ?seat=buyer and ?seat=counsel. Guest room for whispers (shared member JWT is one user). Traces are feeds, not chat. Cross-org is REST /cross-org. |
negotiation-room | same two-seat room + clause policy auto / ask / deny | Legal/procurement counterparties. HITL on ask. Not Harvey. Pin rooms["nda-*"].makerChecker. |
shared-ai-room | pk_ guest widget + optional invokeAgent | First contact without console signup. Deploy apps/worker with wrangler; this template is the UI. |
fleet-panel | POST /fleet/gps then fleet.gps_update | Not MQTT. Geofences: listFleetGeofences |
game-tick | lobby + game.tick / game.match_ended | Authoritative input on the room, not Colyseus Schema |
voice-stage | joinVoiceStage signaling | Bring LiveKit for the media plane |
comments-board | useThreads + FloatingComposer | Not chat parentId as pins |
polls | createPoll / votePoll | Timeline polls. Anonymous ballots: POST /polls isAnonymous |
whiteboard | Yjs strokes + cursors + Comment pins | Yjs on the room DO, not a tldraw SKU |
Health is not HIPAA. Stream WHIP/HLS needs Cloudflare Stream secrets; there is no gallery WHIP example yet. Voice numbers: Voice load report.