What it does
A diff answers a simple question — what is different between these two versions? — and a good one answers it without making you read both versions again. This page compares two blocks of plain text line by line, groups the result into unchanged, changed, added, and removed lines, and paints the changed words inside each modified pair.
The comparison is deliberately ordinary: it is the kind of diff you would see in a code review, applied to prose. There is no formatting, no revision history, and no account. Paste a contract clause, a changelog, a configuration file, or two versions of a product description.
The summary bar counts what the algorithm found. Changed means one line on the left was paired with one line on the right. Added and removed mean lines with no counterpart on the other side. Identical text produces zero differences and a green badge.
How to use it
- Paste the original into Original and the revised version into Changed.
- Choose whether case, whitespace, or blank lines should be ignored. Start with all three off if you need to see every change.
- Read the diff. In side-by-side view, removed words are marked on the left and added words on the right. In unified view, the two versions are stacked with
-and+markers. - Use Swap sides if the versions are in the wrong boxes.
- Copy the change report or download it as a text file.
Options explained
- Ignore case
- Treats
Releaseandreleaseas the same. Useful when a style guide changed the capitalization and you do not want those lines to dominate the diff. - Ignore whitespace
- Trims each line and collapses runs of spaces or tabs for the comparison. Text that differs only in indentation or alignment disappears from the diff. In code, that can hide a meaningful change, so use it with care.
- Ignore blank lines
- Drops empty and whitespace-only lines before comparing. The line numbers in the output still refer to the original positions, so a gap in the numbering is expected.
- Side by side / Unified
- Side-by-side pairs the versions in two columns and highlights the changed words. Unified stacks them with
-/+markers, which is easier on a narrow screen or when you want a compact report.
Examples
Before
The old pricing page felt cluttered.
We moved the comparison table above the fold and shortened the delivery note.After
The new pricing page feels calmer.
We moved the comparison table above the fold and shortened the shipping note.The tool pairs the first lines and marks only the words that changed: old → new, and delivery → shipping. The second line is unchanged, so it stays quiet. That is the difference between a diff and a side-by-side screenshot.
Before
if (user.role = "admin") {
grantAccess();
}After
if (user.role === "admin") {
grantAccess();
}Only the operator changed, and the highlighting makes that obvious. With “Ignore whitespace” on, the indentation remains part of the comparison but spacing differences would not count. For code, keep the ignore options off unless you are deliberately comparing prose-like output.
Before
Intro
Pricing
Support
ContactAfter
Intro
Support
Pricing
ContactThe moved line is shown twice: removed from its old position and added at the new one. The diff is still correct, but it cannot tell you that the text merely moved. That is a limitation of a line-based comparison, not a bug in the output.
When it earns its keep
- Editing and proofreading. Check that a revision changed only what it was supposed to change.
- Client feedback. Paste the version you sent and the version that came back; see every edit without rereading the whole document.
- Configuration and policy files. Compare two exported configs or two versions of a policy before deploying or publishing.
- Data checks. Compare a list before and after a transform to confirm that only the expected rows changed.
- Translation review. Keep the source and translation side by side and see which lines no longer correspond.
Limits worth knowing
- 2,000 lines per side. The comparison is refused beyond that because the algorithm would otherwise make the tab unresponsive. Compare a section instead.
- Line-based, not character-based. A changed line is paired with a changed line and the words inside are highlighted. Reflowing a paragraph so that every line break moves will look like a large change even if the prose is identical.
- No move detection and no three-way merge. Moved blocks show as a removal plus an addition. There is no base version, no conflict resolution, and no patch export.
- Whitespace can be meaningful. “Ignore whitespace” is convenient for prose and dangerous for Python, YAML, and Makefiles. Keep it off when indentation is syntax.
- Very long changed lines are highlighted coarsely. Word-level highlighting is limited to 700 tokens per line; beyond that the whole line is marked as changed rather than freezing the page.
- Nothing is stored. Refresh or close the tab and both drafts are gone. Copy the report if you need a record.
Page updated