Skip to content

Frontend: Add Real-Time Collaborative Editing for Shared Project Configuration #455

Description

@Smartdevs17

Context

Enterprise merchants often have multiple team members managing payment configurations. Concurrent edits can lead to conflicts and data loss.

Current Limitation/Problem

Project configuration is single-user. When two team members edit settings simultaneously, last-write-wins causes silent data loss. There is no awareness of other users actions.

Expected Outcome

Real-time collaborative editing using Operational Transform (OT) or CRDTs, with presence indicators showing who is viewing/editing, conflict resolution, and edit history.

Acceptance Criteria

  • Multiple users can edit project configuration simultaneously
  • Edits are synchronized in real-time via WebSocket (<200ms latency)
  • Presence indicators show active users with cursor positions
  • Conflict resolution with automatic merging (operational transform)
  • Edit history with per-user attribution and rollback capability
  • Lock critical sections (API keys, webhook URLs) during edits
  • Offline edits queued and synced on reconnection
  • Visual diff showing pending and applied changes

Technical Scope

  • frontend/src/components/collaboration/ - collaborative editing components
  • Yjs or ShareDB CRDT library integration
  • backend/src/websocket/collaboration.ts - WebSocket handler for OT
  • Redis pub/sub for broadcasting edits across instances
  • Prisma: ProjectEditHistory model
  • Lock Service for critical section mutation prevention
  • Edge cases: connection drops, conflicting changes, partial syncs, permissions

Metadata

Metadata

Assignees

Labels

200-points200 point issueStellar WaveIssues in the Stellar wave programdrips-waveIssues in the Drips Wave programhighHigh complexity issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions