User Guide
Paste the original
Put the earlier version in the first box — the draft as it was, the contract before the amendments, the config file that used to work. Which side goes where decides the direction of the comparison, so it is worth being deliberate about it.
Paste the new version
The revised text goes in the second box. Both sides accept anything — prose, code, JSON, a list of names — because the comparison works on text rather than on any particular format.
Compare
Press the button and the differences are marked as added and removed. The comparison runs word by word rather than line by line, so changing one word in a long paragraph highlights that word instead of flagging the entire paragraph as different.
Read what changed
Work through the marked sections. The useful discipline is to look for what is missing as well as what is new — a deleted clause or a dropped negation is easy to skim past and usually matters more than an addition.
About the Text Diff Checker
Two documents that look identical usually are not, and comparing them by eye is unreliable in a specific way: your reading brain silently corrects small differences, which is exactly the wrong behaviour when the small difference is the point.
How the comparison works
Both texts are first broken into tokens — word runs, punctuation clusters and whitespace runs, each kept separately rather than discarded. The two token streams are then aligned by finding their longest common subsequence: the longest ordered series of tokens appearing in both, not necessarily adjacently. Anything in the original that is not part of that shared backbone was removed; anything in the new version that is not part of it was added. That is the standard basis for essentially every diff tool, including the one inside Git.
Why the token size decides everything
Most comparison tools tokenise by line. Change one word and the whole line falls out of the common subsequence, so it is reported as a line deleted and a line added, leaving you to hunt for the actual edit. Tokenising by word means the shared backbone runs straight through the untouched words in the sentence, and only the changed word breaks out of it. In a ninety-word paragraph where a single figure changed, you are shown that figure.
Keeping whitespace as its own token is a deliberate choice with a trade-off: it means a change in spacing shows up as a difference. That is noise in prose and essential in code and data files, where indentation and separators carry meaning.
Reading a diff well
Additions attract the eye and deletions do not, which is precisely backwards for reviewing documents. The expensive misses in contract review are almost always removals — a struck-out obligation, a dropped exception, a deleted “not”. Read what disappeared first, then read what arrived.
Where it runs
Entirely in your browser. Nothing is uploaded, which is the difference between being able to compare a draft contract or an unreleased document and not being able to — comparison tools are pointed at exactly the material that should not be handed to a website.
Frequently Asked Questions
Does it compare by word or by line?
By word. A tokeniser separates words, punctuation and whitespace so a single-word change highlights that word rather than marking the whole line as changed.
Is my text uploaded?
No. Comparison happens in your browser, so contracts, drafts and unreleased documents can be compared safely.
Can I compare code or JSON?
Yes. It treats everything as text, which works well for code and config files. It does not understand syntax, so a reformatted-but-identical file will show as heavily changed.
Does whitespace count as a difference?
Whitespace runs are tokenised rather than discarded, so changes in spacing can appear. That is deliberate — in code and data, whitespace sometimes matters.
Is there a size limit?
No fixed limit, though very large documents take longer and produce a lot of output to read. Comparing chapter by chapter is usually more practical than a whole book at once.
Can it compare two PDF or Word files?
Not directly — it works on text. Convert each file to text first (PDF to Text handles the PDF side), then paste both results in.