Conceptually about Asynchronous Editing

Hello everyone, my name is Alexander Machulin, and I’m the co-founder of Gramax. When we talk about Gramax and Docs as Code, we sometimes encounter confusion about how to work on texts asynchronously. Here are some typical comments:

Why do we need all this if online editing in Google Docs, Notion, or Confluence is so much better? You can clearly see who’s working where and what’s being changed.

Someone from the editors’ team

Asynchronous work will only lead to duplicate effort since you can’t see who’s editing which section or paragraph—or whether it’s already been edited.

Someone from the analytics team

It’s often believed that synchronous editing is the best practice and the gold standard when multiple people solve a single shared task together — for example, reviewing an article or a contract.
Meanwhile, asynchronous editing via Git is the best practice when multiple people are solving different tasks collaboratively — as in software development.

What’s synchronous and asynchronous editing

Synchronous editing is when several people edit the same document in the cloud and can see each other’s cursors in real time. Those same “unidentified capybaras” you see in Google Docs.
Asynchronous editing is when everyone downloads their own version of a file, makes changes, and then synchronizes them with their colleagues’ edits.

I’ve thought a lot about this from the perspective of collaborative workflow, and in this article, I’ll share my reflections.

On collaborative work

Here’s how Google Docs was intended to work: people open a shared document, “pile in,” and solve a problem together. But let’s see how it actually works in practice.

Imagine we have a spreadsheet or a text file where many people are working simultaneously — say, 100 people. Usually, each person works on a separate section, a set of rows or paragraphs, solving a logically isolated task that doesn’t interfere with others.
The situation where two (or a hundred) people can edit the same sentence at once is practically impossible. The same goes for spreadsheets: if people edit the same row but different columns, they’re working independently, likely at different times.

In other words, each person works independently — asynchronously — but in an online document.

Imagine you could now see me typing this very sentence. Would you start rewriting it at the same time as me? I doubt it.

So, with the same success, we could work offline and periodically synchronize our changes — since our work is isolated from others’.
If we both edit the same sentence or cell offline, a conflict occurs. Then I (or someone else) can review both versions and decide which one to keep.

You might say:

Imagine a workshop: if someone’s already using the plane, no one in their right mind will grab it—they’ll take a hammer instead. A third person might take a chisel, etc. You can see what the others are doing, and you can talk in real time. But with asynchronous work, everyone has their own copy of the workshop—you can’t see what’s been done or is being done. You need constant syncs or calls, which feels like a step backward.

You

I can imagine that. But beyond analogies, I don’t see real-world examples of this issue.
If lawyers get an emailed contract to review, they can’t “see” who’s editing which part of the text like in a workshop. In the text, you can only see a cursor—not logical task boundaries. So they’ll still have to agree on who’s reviewing what before starting.

I once built a CRM system in Google Sheets because off-the-shelf tools like AmoCRM and Bitrix24 didn’t fit our needs. More than ten people simultaneously filled in data about new clients.
Even with online collaborative editing, it didn’t prevent duplicates or data loss—someone would inevitably overwrite someone else’s rows. We often had to roll back the entire document to an earlier version.

Don’t build a CRM in Sheets :)

When synchronous editing is better

I’ve often found myself watching someone write and thinking, “That’s clumsy — let me fix it.” And I just want to jump in and rewrite it immediately.

With asynchronous work, you can’t do that. You can only help by sharing your screen (if you’re on a call) or giving access to your laptop (if you’re sitting nearby).

That’s about the only real advantage synchronous editing has over asynchronous.
If you know more — please tell me!

When asynchronous editing is better

When I need to work without internet access, I can edit documents locally on my laptop or phone and later synchronize them with the central repository.
If a conflict occurs (someone edited the same line while I was offline), Gramax will show me their change and let me decide whether to accept, reject, or modify it — just like in Git.

Conclusion

Asynchronous editing doesn’t have significant disadvantages compared to synchronous editing — and vice versa.

In my view, writing text is as complex, holistic, and creative as writing code. And in such work, asynchronous editing should prevail.
Personally, I find asynchronous work much more comfortable and enjoyable because no one’s “standing over my shoulder,” and the feeling is mutual.
My productivity drops dramatically when I see colleagues’ cursors blinking in my document.