ONE PERCENT

We build the one percent of digital products.

0%
WorkServicesAboutInsightsProcess Estimate Get an Estimate
All work

ShocoDoc

SaaSWeb

One document, every collaborator, no copies in flight.

Teams still work by mailing versions of the same file to each other. Feedback lands in three inboxes, edits land in two forks, and nobody can say which copy is current. ShocoDoc replaces that with a single live document where the editing, the discussion, and the permissions all live in the same place.

Year 2025
Services Full-Stack Web, Real-Time Systems
Scope Editor, collaboration layer, sharing model
Auth Managed identity, server-side authorization
ShocoDoc editor with an inline comment thread and a mention
1 Canonical copy of every document, always
3 Sharing roles, checked again on the server
0 Refreshes needed to see a teammate's edit
01 / Challenge

Two cursors is a demo. A trustworthy document is a product.

Live cursors are the easy half of collaborative editing and the half everyone shows off. The hard half is everything that has to hold up around them: who this person is, what they are allowed to do, where a comment lives when the sentence it referred to gets rewritten, and what the document looks like after somebody's laptop sleeps mid-sentence.

Get those wrong and real-time is worse than email. At least with email you know which copy you are holding.

02 / Approach

Separate who you are from where you are.

We split the system along the line that matters. Identity and access are owned by the application: it authenticates the user, resolves their role on a given document, and issues authorization before anyone can enter a document session. Presence and shared editing are owned by the real-time layer, which receives only the identity and permissions it needs to do its job.

That boundary is why the product stays honest under load. A late notification or a dropped comment panel cannot corrupt the document, and a client that thinks it has edit rights cannot get them by asking the browser nicely.

ShocoDoc document dashboard listing all documents with a blank document action

“A disabled toolbar is a courtesy, not a permission. Every sensitive action is checked again on the server.”

One Percent On the sharing model
03 / Solution

A small vocabulary beats a permissions matrix.

Sharing uses three roles and nothing more. Owner controls sharing and deletion. Editor changes content and joins discussions. Viewer reads and sees who else is present. An owner invites people by email address and picks the role at the moment of invitation, so the decision is made once, in the place it is made naturally, rather than in a settings screen nobody visits.

The editor itself is deliberately plain: headings, bold, italic, underline, strikethrough, alignment, undo and redo. Discussion sits beside the text as threads rather than inside it, so a conversation about a paragraph survives the paragraph being rewritten. Mentions pull a specific person into a specific thread and drop the result into their notification inbox, which is what actually replaces the email that used to carry the file.

ShocoDoc editor in its empty state with formatting controls and comment panel
04 / Outcome

Shared editing that behaves the same when the network does not.

ShocoDoc ships as a working collaboration product: multiplayer editing with presence, threaded comments with mentions, an owner and editor and viewer model enforced server-side, an in-app notification inbox, and account settings including linked sign-in providers.

The test we held it to was not a screen recording of two cursors. Two people edit, comment, lose their connection, and come back, and both can explain what happened to the document. That is the bar collaborative products have to clear before the live cursors mean anything.

Next project

EchoSign

EchoSign

Sign language, spoken out loud

View case study