Weekly Planner
Features

Presence

Live avatars and peer cursors on the week grid.

Presence

Room

db.room('board', boardId) with presence fields name, color, role.

useBoardPresence:

  • Boardless sessions park in per-tab idle rooms so hooks stay unconditional
  • Anonymous guests get stable session colors
  • Published name is shortened; never raw email
  • Account settings override both: settings.displayName replaces the email local part, settings.presenceColor replaces the hash color

Avatars

PresenceAvatars — overlapping stack with +N overflow. The stack is a button: clicking it opens a popover listing everyone in the room by name, with their avatar color and role (편집/보기).

Cursors

grid-cursors.jscontentPointFromPane, gridCursorSpaceId (room-scoped key).

GridCursors:

  • Publishes scroll-content coordinates (not viewport-only)
  • Ignores touch pointer moves
  • Republishes on pane scroll so peers stay aligned with cells
  • Clears on pointer leave
  • Transform + short transition + willChange

On this page