Comments on Google Docs,
where you actually work.

A browser extension that pulls every comment, suggestion, and reply from your Google Docs into a project workspace. Feedback stays readable across versions and easy to reconcile, even after the text moves.

00

What it does.

Margin subscribes to a Google Doc and pulls every comment, suggestion, and reply into a project you own. Versions are immutable snapshots. Comments stay anchored to text, even after edits.

The browser extension is the whole product surface: a popup to add docs to a project, a side panel for the project dashboard, version diffs, and the comment reconciliation view. Ingest happens server-side, so there's no content script poking at your docs.

Designed for the working writer who does the work in Google Docs but needs a system of record that doesn't trap your data.

01

Install.

One click in your browser. Margin works on Chrome, Firefox, and Edge.

Margin for Chrome, published on the Chrome Web Store.Add to Chrome

After installing, click the Margin icon and sign in with your Google account. That's the whole setup.

02

Connect your Google account.

Margin only ever sees docs you explicitly create from Margin or pick from Drive. drive.file scope only.

The first time you click Add to Margin in the popup, you'll be sent through Google's standard OAuth consent screen. Your refresh token is envelope-encrypted at rest; Margin never holds your password. The drive.file scope means the backend cannot read anything in your Drive except the specific files you picked.

03

Track a doc.

Open the doc, click the Margin icon, hit Add to Margin, pick a project. The doc becomes a v1: a frozen copy you can replay comments onto.

The Drive Picker runs sandboxed inside the extension popup. Once you pick a file, the backend copies it, computes a content hash, and subscribes to a Drive files.watch push channel. From here on, every comment edit shows up in your project without you opening anything.

04

Capture replies and suggestions.

The public Drive/Docs API can't read suggestion-thread replies. Margin recovers them server-side by parsing the Google-issued .docx export of your doc.

Every comment, every reply, every suggested insertion or deletion lands in your project, complete with author, timestamp, and the exact text range it points at. Open the side panel to see the full history per version, who replied when, and how comments re-anchored as the text moved.

05

Projects, versions, reconciliation.

A project owns a doc. A version is an immutable snapshot. Comments re-anchor across versions, so a note left on v1 still lands in the right place on v3.

Comments re-anchor automatically using paragraph-hash plus structural offset, with confidence scoring for the cases where the text moved far enough to need a second look. When a comment can't be placed cleanly, it surfaces in the reconciliation view instead of being dropped.

06

Request a review.

Pick a version, name your reviewers, send. Margin shares a frozen copy, collects what comes back, and reconciles it onto your current draft.

External reviewers never need a Margin account. Each one gets a one-click email link to mark a version reviewed, request changes, or decline. Their comments ingest through the doc owner's Drive access, so cross-org review works without asking anyone to grant Drive scope.

07

Privacy by default.

No analytics, no telemetry, no third-party calls beyond Google's own Drive and Docs APIs.

Refresh tokens are envelope-encrypted with a per-row data key wrapped by a master key on the backend. The extension authenticates with a Better Auth session token acquired through Google sign-in. The extension only ever talks to the Margin backend. No analytics SDKs, no third-party trackers.

08

Open source.

GPL v3 licensed. The full source is public.

Source on GitHub. Issues, pull requests, and weird ideas welcome.

09

FAQ.

Why not a comments-style API? Workspace's public API can read anchored comments but cannot author them, and it doesn't expose suggestion-thread replies at all. Margin reads what the API gives it and recovers the rest from the .docx export of each doc.

Does this work for non-Docs files? Not yet. Slides and Sheets are on the roadmap once the comment-anchoring model stabilizes for body text.