Overview
Every document has a history, but most histories are invisible. A revised contract lands in your inbox, a writer submits draft seven, a config file behaves differently than it did yesterday — and the question is always the same: what exactly moved? Reading both versions end to end is slow, unreliable work; the eye skips, the mind fills in gaps, and small but critical changes slip through. This tool replaces attention with arithmetic.
It works the way version-control systems do: both texts are broken into lines and aligned by their longest common subsequence — the largest set of lines appearing in the same order in both versions. Lines that survive the alignment form the unchanged backbone of the document. Everything else is classified as an addition or a removal, and each change is displayed in place with its neighbouring lines for context, so every edit reads naturally.
What does “longest common subsequence” mean?
Imagine two stacks of numbered cards. The longest common subsequence is the biggest collection of cards that appears in the same order in both stacks — not necessarily consecutively, just in the same relative order. Those cards are the parts of the text that did not change. Once they are identified, every remaining card has a clear verdict: present only in the new stack means added, present only in the old stack means removed. The result is the smallest possible description of how to turn one text into the other.
The comparison is deliberately line-based rather than word-based. A single altered word flags its whole line as changed, which can look dramatic on heavily rewritten paragraphs — but it is honest. It tells you precisely which lines an editor touched, and that is exactly the question reviewers, lawyers and developers are asking when they diff. Word-level diffs exist too, but line-level remains the industry standard for review because it maps cleanly onto how people actually edit.
Features
- Line-by-line alignment using the longest-common-subsequence method behind Git and friends.
- Colour-coded +/- output so additions and removals read at a glance.
- Surrounding context shown with every change, so edits read in place.
- Live change counts — added, removed and unchanged lines tallied automatically.
- Swap direction to read the same edit from the other side.
- Clear button for a fresh comparison in one click.
- Handles long texts — contracts, chapters, logs — entirely on your device.
Benefits
- Verify, don't trust. See proof of what “just a few tweaks” actually touched.
- Review faster. Minutes of scrolling become seconds of scanning.
- Catch the quiet edit. A single changed figure or clause cannot hide.
- Stay private. Unpublished drafts never leave your browser.
Who can use it
Editors checking what a revision really did before it goes to print, lawyers confirming that only the agreed clauses moved in a contract redline, developers diffing configuration files or log output between two runs, students watching an essay evolve across drafts to understand their own editing habits, technical writers reviewing documentation updates, and managers reviewing documents that passed through many hands. Anyone who has ever been told “I only changed one thing” — and wanted evidence rather than reassurance — will reach for this regularly.
How to use
- Paste the earlier version into the first box.
- Paste the revised version into the second box.
- Press Compare and read the highlighted result.
- Check the added/removed/unchanged counts for the scale of the edit.
- Use Swap to flip the comparison direction, or Clear to start over.
Frequently asked questions
Why does one changed word flag the whole line?
Because the unit of comparison is the line, not the word. Any difference inside a line marks it as removed from the old text and added in the new one. This is standard diff behaviour everywhere from Git to word processors, and it answers the practical question reviewers care about: which lines would you have to touch to convert one version into the other? Word-level highlighting would be noisier without adding decision value.
What if I paste the texts in the wrong order?
Just press the Swap button. Additions become removals and removals become additions — the same information read from the opposite direction. There is no need to re-paste anything, and the change counts update accordingly. The direction only matters for how you narrate the edit, not for what the edit contains.
Does it work for code or just prose?
Both. The tool compares lines of text without caring what they mean, so source code, JSON, CSV files and server logs diff just as well as essays and contracts. For code, running a formatter first helps — consistent indentation keeps the diff clean and prevents whole-file flagging from a single re-indented block. Developers use it for quick config comparisons daily.
How large a text can it handle?
Comfortably large — multi-thousand-line documents run fine, because the algorithm belongs to the same family that version-control systems use on entire repositories. Performance depends on how different the texts are rather than their raw size: near-identical long documents align quickly, while two completely different texts force more comparison work. Extremely long single lines, like minified files, are the main thing that slows it down.
Is my text sent anywhere?
No. Both texts are compared by JavaScript running locally in your browser, using the same class of algorithm that powers Git diff. Nothing is uploaded to any server, nothing is logged, and nothing is retained when you leave the page. Unpublished drafts, confidential contracts and private notes are as safe here as in a desktop application.
Conclusion
Edits are easy to make and hard to audit — unless you can see them. Paste both versions, press Compare, and let the lines speak for themselves. The truth about what changed is always in the text; this tool just makes it visible.