PaperDiff

Free · No account · Nothing uploaded

Compare two documents word by word, in your browser.

Drop in two versions of a contract, a report or an agreement, PDF or Word, and see exactly what changed. Relocated clauses are reported as moves, a renamed defined term is counted once, and page footers are left out. Neither file ever leaves this tab.

AddedRemovedMoved
Originalthe earlier draft

or drop it here

.pdf · .docx · .txt · .md

Revisedthe one to check

or drop it here

.pdf · .docx · .txt · .md

Nothing is uploaded. Both files are read inside this tab.

Three things a contract comparison has to get right

A plain text diff finds every difference and tells you almost nothing. These are the cases where the difference between “correct” and “useful” decides whether a change list gets trusted or re-done by eye.

A moved clause is not a deletion

Lift a clause out of section 4 and drop it into section 12, and every word-level diff reports a deletion and an unrelated insertion. Here the halves are paired and reported as one move, with both page numbers.

A renamed term is one amendment

Change a defined term and the comparison correctly finds all twenty occurrences. The thing that matters, one decision applied everywhere, is in none of them, so it is named first, with its count.

A page footer is not a change

Add a sentence to page 3 and every footer after it renumbers. Running headers and footers are found by repetition across pages and left out, so the list opens with the amendment rather than with page numbers.

How it works

  1. 01

    Both files are read here, not sent

    The browser hands the bytes straight to the page. There is no upload endpoint on this site, so there is nothing to retain, nothing to log and nothing to be in the scope of a breach. Once the page has loaded you can disconnect from the network and it still works.

  2. 02

    The text is reconstructed carefully

    A PDF contains positioned glyphs, not paragraphs. Words broken across a line are rejoined, implicit spaces restored, paragraph breaks worked out from the geometry, and page furniture identified by its repetition.

  3. 03

    The alignment is chosen before it is minimised

    Patience diff anchors only on words that are unique on both sides, so repetitive boilerplate can never drag two unrelated clauses into each other. Within each gap the alignment is then made optimal.

  4. 04

    The result is yours to take away

    A navigable change list with keyboard stepping, a redline you can print, a side-by-side view, a page view for PDFs, and CSV export. All produced on your machine, because that is where the documents are.

Questions

Are my documents uploaded anywhere?
No. Both files are read inside this browser tab and never sent anywhere. There is no upload endpoint on this site, so it could not receive them even if it wanted to. Open your browser’s network inspector and compare two documents, and you will see no document data leave the page. Once the page has loaded you can disconnect from the network entirely and it still works.
Is it really free, and what is the catch?
Free with no account, no page limit, no watermark and no trial clock. The catch is architectural rather than commercial: because the work happens on your machine there is no server to pay for, and therefore nothing to meter. But equally there is no OCR, no export to Word with revision marks, and no integration with anything. Those need a server.
Which file types can it compare?
PDF, Word (.docx), plain text and Markdown, in any combination, including a PDF against a Word file, which most desktop tools will not do without converting one side first. Old .doc files and RTF are not supported; open them and save as .docx.
What makes it different from a plain text diff?
Three things that matter on a contract. A clause that moved is reported as a move rather than as a deletion and an unrelated insertion. A defined term renamed throughout is named once, with its count, before the individual occurrences. And running headers, footers and page numbers are left out by default, because they renumber whenever a document gains a line and would otherwise fill the change list.
Can it compare scanned PDFs?
No, and nothing can without optical character recognition: a scanned page holds a picture of words rather than words. This is detected and refused by name, rather than reported as "no differences found", which would be true about the data and dangerously false about the documents.
Which browsers does it work in?
Chrome 119 or later, Edge, Safari 17.4 or later, and Firefox 121 or later. The floor comes from the PDF engine rather than from anything here. Word, text and Markdown comparison works in anything more recent than about 2023.
How large a document can it handle?
A few hundred pages comfortably. The comparison itself is around 60 milliseconds for a 250-page pair; reading a long PDF takes a second or two. Files are refused above 256 MB, which no contract reaches.
Can I save or share the result?
Yes, three ways, all produced on your machine: copy the summary as formatted text for an email, download the change list as a CSV to work through in a spreadsheet, or print, which the browser turns into a PDF with the marks intact. There is no share link, because a share link would mean uploading the documents.

Written up in more detail