Diff Checker
Compare two texts line by line and see exactly what was added, removed or left alone.
Runs entirely in your browser. Nothing is uploaded, logged or stored.
Paste two versions of a text and see what changed between them, line by line. The comparison happens in your browser: neither text is sent anywhere.
How it works
The two texts are split into lines and matched using a longest common subsequence — the same idea behind the diff in a version control system. Lines that appear in both, in the same order, are shown as unchanged; everything else is an addition or a removal.
Line endings are normalised first, so the same file saved on Windows and on Linux compares as identical rather than as every line changed. A replaced line appears as a removal followed by an addition, because that is what it is.
Identical blocks at the top and bottom are matched off before the comparison proper, which is why a one-line change in a long file is instant. Two texts that share almost nothing are the expensive case, and past a certain size the tool says so instead of freezing your tab.
Examples
| Case | Input | Result |
|---|---|---|
| One line changed out of three | alpha / beta / gamma against alpha / BETA / gamma | 1 added, 1 removed |
Frequently asked questions
Does my text leave the browser?
No. The comparison runs locally in JavaScript, and nothing is uploaded, logged or stored. There is also no share link for this tool, because a link would have to carry both texts in the URL — where they would end up in browser history and in server logs.
Why does it compare lines rather than words?
Because that is what makes a diff readable for the things people compare: configuration, code, contracts. A word-level diff of a reflowed paragraph marks almost every word as changed and tells you nothing.
What does ignoring whitespace actually ignore?
Runs of spaces and tabs collapse to a single space and the ends of each line are trimmed, so re-indenting a block is not reported as a rewrite. It does not remove spaces altogether: "a b" and "ab" remain different lines.
Is there a size limit?
Five thousand lines per side, and the part that actually differs may span at most 1200 lines on either side. The second limit is the one that bites on two unrelated texts; the tool refuses rather than exhausting memory.
Good to know
- The comparison runs in your browser. Nothing you paste is sent, logged or stored, and the server is never asked to compare anything.
- That also means the tool needs JavaScript. Without it there is no comparison at all, rather than a comparison that happens somewhere else.