FluxyChat

Platform

FluxyEdu

Classroom on one room. Polls, breakouts, attendance. Video is Cloudflare Realtime SFU.

Console: /edu. The classroom is a normal room. Polls and breakouts go to Worker HTTP, then fan out on the room WebSocket.

PieceAPI
PollPOST /polls, then GET /polls/:id. Close with POST /polls/:id/close. You cannot vote on a poll you created.
BreakoutPOST /rooms/:id/breakouts, list with GET, close with POST on the breakout id
Attendanceattendance.heartbeat capability events. Live counts: GET /rooms/:id/capabilities/snapshot
WhiteboardYjs on the same room. Collab
Grading agentDraft only. A teacher publishes.

The live workspace on /edu runs those poll and breakout calls against the room you picked.

Live video is not a FluxyChat SFU. The Worker proxies Cloudflare Realtime SFU (POST /rooms/:id/realtime/sessions). LiveKit is a fallback if you set LIVEKIT_*. FERPA, COPPA, retention, and learner export are workspace settings. They are not defaults.