Problem Statement
Currently, the collaborative editor supports real-time code synchronization, but users do not have visibility into collaborator activity inside a room.
During pair programming or team collaboration sessions, it becomes difficult to identify:
- who is actively typing,
- which collaborator is currently editing,
- or whether users are idle/disconnected.
This reduces collaboration awareness and can create confusion in shared editing sessions.
Proposed Solution
Implement real-time collaborator presence and typing indicators using Socket.IO events.
Suggested Features
- Show active typing status (
User is typing...)
- Highlight currently active collaborators
- Detect idle users after inactivity
- Optional colored collaborator cursor indicators
- Display online/offline room presence
Benefits
- Improves real-time collaboration experience
- Enhances pair programming usability
- Makes editor interactions more interactive and professional
- Provides better user awareness during shared coding sessions
Possible Technical Approach
- Emit
typing-start and typing-stop socket events
- Track user activity timestamps
- Debounce typing events for optimized performance
- Maintain collaborator presence state on the frontend
Additional Notes
This feature can later be extended into:
- live collaborative cursors,
- edit history tracking,
- collaborative selections/highlights,
- session analytics.
I would like to work on this feature under GSSoC'26 if approved.
Problem Statement
Currently, the collaborative editor supports real-time code synchronization, but users do not have visibility into collaborator activity inside a room.
During pair programming or team collaboration sessions, it becomes difficult to identify:
This reduces collaboration awareness and can create confusion in shared editing sessions.
Proposed Solution
Implement real-time collaborator presence and typing indicators using Socket.IO events.
Suggested Features
User is typing...)Benefits
Possible Technical Approach
typing-startandtyping-stopsocket eventsAdditional Notes
This feature can later be extended into:
I would like to work on this feature under GSSoC'26 if approved.