Skip to content
← All case studies
Systems · Product case study

Figma: When everyone edits at once.

A shared canvas is also a promise about whose work is saved. Explore local edits, connection loss and reconciliation.

See the idea in one picture ↓
multiplayer model
Client-server
sync ideas
CRDT-inspired
edits reconnect
Offline
engineering account
2019

Figures as reported by the company.

Independent educational analysis. Scenarios, people, numbers and illustrations on this page are original PMcademy practice material, not company research results or an endorsement.

The idea in one picture

How edits travel when everyone works at once

Serverkeeps one orderLast to arrive winsAnaKofiOffline1 queued
  1. 1One edit

    A change goes to the server, which passes it to everyone else.

  2. 2Two edits at once

    The server keeps one order, so the last edit to arrive wins everywhere.

  3. 3Offline and back

    Edits made offline wait in a queue and sync on reconnecting.

Animated illustration. Names, numbers and people are fictional teaching material.

The tension

Two people can be right locally.

Before

Two people, two versions of the truth

After

One shared order everyone sees

Read the analysis

Imagine Leena and Omar editing a shared project brief. Leena changes a heading while Omar moves a section. Each person expects an immediate response and assumes their work will survive. If the interface waits for every network roundtrip, editing feels slow. If it confirms everything instantly without distinguishing local and shared state, it can promise more than the system knows.

The mechanism

Follow an edit across the connection.

Change one thing · Practice model
LeenaOmar
Leena sees a local edit. Omar still sees the previous state.

Illustrative data and simplified behaviour. This model does not represent a live company system or measured company results.

Go deeper · LessonThe state matrix nobody draws
Read the analysis

Move through the three states below. Leena first sees her local edit. The connection then disappears, so the interface must not claim that shared state is current. Reconciliation eventually gives both clients a resolved result. This teaching model does not implement a CRDT or Figma’s conflict rules. Its purpose is to make the product promise explicit before you choose the technical mechanism.

The person

A cursor is a social signal, not a save guarantee.

LOLeena and OmarEditing the same brief at once
The moment

“Did my change just disappear, or is it still syncing?”

Needs
  • Instant local response
  • Confidence their work survives
Blocked by
  • Silent overwrites
  • No sign of being offline
Go deeper · LessonA flow is states, not screens
Read the analysis

Seeing another person’s cursor can help coordination, but it does not tell you whether your last change reached the server. Separate presence, local editing, shared state and persistence in your requirements. Ask what the person needs to know in each state. A designer may tolerate a brief delay in another cursor while being very sensitive to uncertainty about whether a major edit has been preserved.

The evidence

Test the transitions that happy-path demos omit.

  • What Figma says

    Figma explains its client-server system and how an offline client reconnects.

  • What it cannot prove

    How often conflicts happen or how users feel about them.

  • What you would measure

    Edits lost or reverted

  • Time to sync after reconnecting

  • Support tickets about lost work

Go deeper · LessonWhat latency is made of
Read the analysis

For a prototype review, disconnect one client, edit the same field in two windows, reconnect, and attempt undo. Inspect the visible state and the saved result. Include slow connections and refreshes. Track lost-work reports separately from ordinary latency. A system can feel fast in a demo while leaving users uncertain in the exact situations where trust matters most.

The trade-off

Instant feedback needs honest boundaries.

You gainYou give up
Editing feels instantvsLast edit can overwrite
Live presence helps teamsvsError states matter more
Simple conflict rulevsUndo gets harder
Read the analysis

Optimistic interaction makes work feel responsive, but error and recovery states become essential. Write the rules for two edits to different fields and two edits to the same field. Consider undo: does it reverse only your action, or can it unexpectedly remove a collaborator’s later work? A PM need not invent a synchronisation algorithm, but must describe the outcomes people expect and review the edge cases with engineering.

Your decision

What should the interface promise while offline?

Your fictional editor can show a generic “saved” label, an explicit local-only state, or block every edit. Choose based on what the system can actually preserve and reconcile. Explain the cost of a misleading success message and the cost of unnecessary interruption. The right choice connects the technical guarantee with a clear user expectation.

Choose a next move

Make it yours

Write a collaboration state contract.

Your artifact

Create the five-state collaboration matrix, with a same-field edit conflict and an undo rule.

Prompt worth stealing

Critique my project artifact using only the evidence I provide. Create the five-state collaboration matrix, with a same-field edit conflict and an undo rule. Separate observed facts, assumptions, proposed tests and missing evidence. Identify a failure mode and a cheap check. Do not invent company results or user research. Ask for my artifact before starting.

Read the analysis

Create a matrix for connected, slow, offline, reconnecting and conflicted states. For each, specify permitted actions, visible feedback, persistence guarantees and recovery. Add a same-field conflict example and an undo example. Review the matrix with an engineer before designing decorative presence indicators.

Keep reading

More product management case studies

See all 18 case studies