PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Grammarly

Design a Figma-like collaborative editor

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability in designing real-time collaborative systems, covering concurrency control (OT/CRDT trade-offs), low-latency messaging, data modeling, persistence, client-server synchronization, and fault tolerance for unreliable networks.

  • medium
  • Grammarly
  • System Design
  • Software Engineer

Design a Figma-like collaborative editor

Company: Grammarly

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

## System Design: Collaborative design editor (Figma/Google Docs style) Design the backend (and key client interactions) for a **real-time collaborative design editor** similar to Figma (or a Google-Docs-like document, but for canvas objects). ### Core features - Users can create/open a **file** (design document) containing a canvas with objects (e.g., frames, shapes, text). - **Multiple users edit concurrently** and see updates in near real time. - Basic collaboration UX: - Presence (who is online in the file) - Cursor/selection indicators (optional) - Comments (optional) - Persistence: changes must be saved and the file can be reopened later. ### Non-functional requirements - Low latency for edits (target p50 < 200ms end-to-end for active collaborators). - Supports many files; a “hot” file may have many concurrent editors. - **Network failures** happen frequently (mobile/Wi‑Fi). Explain how the system behaves when: - a client temporarily disconnects and reconnects - packets are duplicated/out of order - the client edits while offline and later comes back online ### Scope / assumptions - You do not need to draw diagrams; explain in text. - You may choose an algorithm for concurrent editing (e.g., OT or CRDT) and justify it. - Define key APIs, data model, and major components (real-time messaging, storage, auth).

Quick Answer: This question evaluates a candidate's ability in designing real-time collaborative systems, covering concurrency control (OT/CRDT trade-offs), low-latency messaging, data modeling, persistence, client-server synchronization, and fault tolerance for unreliable networks.

Related Interview Questions

  • Design a Read-Once Chat System - Grammarly (medium)
  • Design a collaborative spreadsheet - Grammarly
  • Design a restaurant reservation system - Grammarly (medium)
Grammarly logo
Grammarly
Feb 11, 2026, 12:00 AM
Software Engineer
Technical Screen
System Design
3
0

System Design: Collaborative design editor (Figma/Google Docs style)

Design the backend (and key client interactions) for a real-time collaborative design editor similar to Figma (or a Google-Docs-like document, but for canvas objects).

Core features

  • Users can create/open a file (design document) containing a canvas with objects (e.g., frames, shapes, text).
  • Multiple users edit concurrently and see updates in near real time.
  • Basic collaboration UX:
    • Presence (who is online in the file)
    • Cursor/selection indicators (optional)
    • Comments (optional)
  • Persistence: changes must be saved and the file can be reopened later.

Non-functional requirements

  • Low latency for edits (target p50 < 200ms end-to-end for active collaborators).
  • Supports many files; a “hot” file may have many concurrent editors.
  • Network failures happen frequently (mobile/Wi‑Fi). Explain how the system behaves when:
    • a client temporarily disconnects and reconnects
    • packets are duplicated/out of order
    • the client edits while offline and later comes back online

Scope / assumptions

  • You do not need to draw diagrams; explain in text.
  • You may choose an algorithm for concurrent editing (e.g., OT or CRDT) and justify it.
  • Define key APIs, data model, and major components (real-time messaging, storage, auth).

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Grammarly•More Software Engineer•Grammarly Software Engineer•Grammarly System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.