Diff Checker
Compare two text blocks.
Loading tool…
How comparing two texts works
A diff algorithm finds the longest common subsequence between two versions and reports everything else as an insertion or a deletion. Compare line by line and you see which lines changed; compare word by word and you see exactly which words moved inside a paragraph, which is far more useful for prose than a whole line marked as modified.
Presentation matters as much as the algorithm. Side-by-side view puts the versions in parallel columns, which suits reading unfamiliar text. Inline view marks additions and deletions in a single flow, which suits reviewing your own edits. Options such as ignoring whitespace or case are what stop trivial reformatting from drowning out the changes you actually care about.
Why we built this tool
The everyday uses are comparing two drafts of a contract, checking what an editor changed, verifying that a copied configuration matches the original, or finding the one differing line between two lists that should be identical.
Contracts, drafts, and configuration files are private, and the two versions you paste in are often the most sensitive pair of documents you have — the before and after of something not yet agreed. Ours computes the comparison in your browser with JavaScript, so both versions stay on your device, nothing is transmitted, and there is no length limit. Once loaded, it works offline, which suits reviewing documents on the move.
Tips and common mistakes
- Turn on whitespace-insensitive comparison when reformatting is hiding the real changes.
- Sort both lists first when comparing sets of items where order does not matter.
- Word-level comparison reads far better than line-level for prose.
- Differences in line endings between Windows and Unix files can mark every line as changed.
Open Diff Checker with a link
Diff Checker can be handed its input by the link that opens it, so the page arrives with the work already done. This is meant for assistants and scripts: if a chatbot, an editor extension, or a command-line agent already holds your content, it can build a link instead of asking you to copy and paste into a box.
The payload rides in the fragment — the part of a URL after the #. Browsers never send the fragment to a server, so anything handed over this way stays on your device exactly as a dropped file would. A link that uses the query string instead is rewritten into the fragment by the page before any analytics or ad script can read the address.
Prefix any field with gz — #gza= — to pass it as gzip-compressed base64url, which fits roughly five to ten times more into the same link. Links stay reliable up to about 8,000 characters; past that, chat apps and address bars start truncating them, and the page says so rather than loading half a document.
One exception to the privacy rule: ?url= tells the page to download the input from an address. That request goes from your browser straight to that server — not through ours — but it does leave your device, and it only works if the server allows cross-origin requests.
#a=— the first side to compare#b=— the second side to compare
Example: https://mygadgets.ink/tools/diff-checker/#a=...&b=...
Quick start: using Diff Checker
- Paste the original text into the left panel.
- Paste the revised text into the right panel.
- Run the comparison and choose inline or side-by-side view.
- Enable whitespace-insensitive comparison if reformatting is obscuring real changes.
- Work through the highlighted differences one by one.
For source code specifically, Code Diff Formatter renders hunks more clearly; for API payloads use JSON Diff.