ConvertUnlimited

Diff Checker

Compare two texts locally and see added, removed, and unchanged lines.

Local developer comparison tool

Compare original and changed text.

Paste two versions, run a line-based diff, and copy the result with selected text processed locally in your browser.

Summary:

Diff output

What this tool does

Paste two versions, run a line-based diff, and copy the result with selected text processed locally in your browser.

Privacy behavior

Selected file contents are processed locally in your browser for supported workflows. This privacy build does not intentionally load ads, analytics, remote fonts, or third-party runtime scripts.

Supported workflow

Use the controls on this page, review the output in your browser, then copy or download the result.

When should you use a diff checker?

Diff checking helps review edits, compare snippets, inspect configuration changes, and debug text output before sharing or deploying.

This tool uses a simple line-based comparison and renders text safely as text, not raw HTML.

How the line-based diff works

This tool compares two texts using a longest common subsequence, or LCS, dynamic-programming algorithm at line granularity, the same family of algorithm behind the Unix diff command. Both texts are split into lines, with \r\n and \r line endings normalized to \n first. A table sized to the number of lines in each text is filled in to find the longest sequence of lines that appears, in order, in both versions; every line not part of that shared sequence is then marked as removed, from the original side, or added, on the changed side.

The result is a minimal edit script measured in whole lines, not characters or words: a single-character change on an otherwise identical line still marks that entire line as one removed line and one added line, since the comparison unit is the line, never a substring within it.

OptionChanges equality for comparisonWhat the output still shows
DefaultExact line-by-line string equalityOriginal text, unchanged
Ignore caseBoth lines lowercased before comparingOriginal casing, exactly as typed
Ignore whitespaceEach line trimmed, internal whitespace runs collapsed to one spaceOriginal spacing, exactly as typed

Both toggles only change which lines count as equal while building the shared sequence; the rows rendered on screen and in the copyable output always show the original text from whichever side they came from, never the normalized version used for comparison.

Worked example

The Sample diff button loads a five-line original and a six-line changed version differing in one value and one added line:

Original:                        Changed:
name: ConvertUnlimited           name: ConvertUnlimited
status: draft                    status: live
locale: en                       locale: en
emoji: hello                     emoji: hello
city: Bangkok                    city: Bangkok
                                  updated: 2026-05-12

Comparing them produces:

  name: ConvertUnlimited
- status: draft
+ status: live
  locale: en
  emoji: hello
  city: Bangkok
+ updated: 2026-05-12

The summary line reads 2 added, 1 removed, 4 unchanged. Only the status line and the new updated line differ; the other four lines match exactly and are shown once, not duplicated on both sides.

Limits and gotchas

  • This is a line diff, not a word or character diff. Changing one word inside an otherwise identical sentence still marks the whole line as one removed line and one added line; there is no inline highlighting of exactly which word or character changed within that line.
  • Reflowed text can look like a full rewrite. Two versions of the same paragraph wrapped onto different line lengths are compared line by line, so a paragraph that only had its line breaks moved, with identical words overall, can show as entirely removed and re-added.
  • Large comparisons are skipped, not slowed down. If the two texts combined exceed 200,000 characters, or the number of lines on one side multiplied by the number of lines on the other exceeds 250,000, the comparison is skipped entirely with a message rather than run to completion slowly, protecting the browser tab from the cost of the underlying algorithm on very large input.
  • Ignore case and ignore whitespace only affect matching, not display. Turning on either toggle can make two visually different lines count as unchanged for the diff, but the line shown in the output is still the original, unnormalized text.
  • Whitespace only inside a line is affected. A leading or trailing blank line at the very start or end of the whole input is still its own line and can still show as added or removed, since the ignore whitespace option only trims and collapses whitespace within each line, not blank lines themselves.

Frequently Asked Questions

Is this Diff Checker free?

Yes. You can compare, copy, and clear text without signup.

Is my text sent to ConvertUnlimited servers?

No server-side upload endpoint is used for comparison; text is processed locally in your browser.

What kind of diff is used?

The tool uses a line-based diff that marks added, removed, and unchanged lines.

Can it ignore whitespace or case?

Yes. Use the toggles before comparing.

Does it support Unicode?

Yes. Unicode text and emojis are handled as browser strings.

Does it highlight the exact word or character that changed?

No. Comparison happens at the line level, so a one-character change marks the whole line as removed and re-added rather than underlining the specific character.

Is there a size limit for comparisons?

Yes. Comparison is skipped if the two texts combined exceed 200,000 characters, or if the line count on one side multiplied by the other exceeds 250,000.

Why does a reformatted paragraph show as fully changed even though the words are the same?

The diff compares whole lines. If line breaks moved but the words did not change, the line boundaries no longer match, so the paragraph can appear as fully removed and re-added even though its wording is identical.

Privacy

Privacy build: This build removes ads, analytics, remote fonts, runtime CDN scripts, and file-operation telemetry. Selected files are processed in the browser using local JavaScript and browser APIs.

ConvertUnlimited does not provide a server-side upload endpoint for this text comparison flow. Text is processed locally in your browser.

Terms of Use

ConvertUnlimited is provided as is. Review diff output before using it in production workflows.

Privacy & processing

Trust and privacy

Files are processed locally where supported. Review the Trust Center for the processing model and the Privacy Policy for public-site privacy boundaries.