Diff Checker

Free

Compare two texts, JSON, HTML or code and see every change. Processed on Zyff’s servers — your text is never stored.

Original0 lines · 0 chars
Changed0 lines · 0 chars
Nothing compared yet
Paste or drop two files above, then hit Find difference. Text, JSON, HTML, CSS, JavaScript, XML, CSV, SQL and Markdown are all understood.

About the Diff Checker

Zyff's diff checker compares two versions of anything text-shaped — a document, a config file, an API response, a stylesheet, a spreadsheet export — and shows you exactly what moved. Paste both sides or drop two files, and every added, removed and modified line is highlighted, with the changed words picked out inside each line so you are not left comparing two long lines by eye. It reads JSON, HTML, XML, CSS, JavaScript, TypeScript, YAML, CSV, SQL, Markdown and plain text, and it can pretty-print both sides first so that reindenting, minifying or reordering JSON keys stops registering as a change at all. Comparison runs on Zyff's servers using Myers' algorithm, the same one git uses, so the answer is the smallest true set of changes rather than a rough guess; both texts are held in memory for the length of one request and are never stored. Free, unlimited and no signup.

How to compare two files and find the difference

  1. Add the original

    Paste the first version into the left box, or drag a file onto that panel — .txt, .json, .html, .xml, .css, .js, .ts, .yml, .csv, .sql and .md are all recognised, and the content type is set from the file extension for you.

  2. Add the changed version

    Paste or drop the second version into the right box. Either side can be empty if you want to see a file as entirely added or entirely removed.

  3. Pick the content type

    Leave it on Plain text for prose, or choose JSON, HTML, CSS, JavaScript, XML, CSV, SQL, YAML or Markdown. The content type decides which pretty-printer runs and which comment syntax can be ignored.

  4. Decide what counts as a difference

    Open “What counts as a difference” to ignore whitespace, capitalisation, blank lines or comments, to reformat both sides before comparing, or to sort JSON keys so their order stops mattering.

  5. Compare and read the result

    Hit Find difference. Additions are green, removals are red, and modified lines show the exact words that changed. Switch between side-by-side and unified views at any time without re-running the comparison.

  6. Take the changes with you

    Copy or download the result as a standard unified diff (.patch), the format git apply and patch both read, so a change you spotted here can be applied somewhere else.

What the Diff Checker does

Eleven content types, not just text

JSON, HTML, XML, CSS and SCSS, JavaScript and TypeScript, YAML, CSV, SQL, Markdown and plain text. The type you pick changes how the two sides are prepared, which is what makes a JSON diff useful rather than just colourful.

Compare with or without formatting

Turn on “reformat both sides first” and a minified file and its pretty-printed twin stop differing on every line. Seven built-in printers cover JSON, HTML, XML, CSS, JavaScript, SQL and CSV, and each one only ever moves whitespace — nothing is renamed, reordered or dropped.

JSON compared by meaning, not by key order

Sort JSON keys and two objects holding the same data match even if one was serialised in a different order. Arrays keep their order, because in an array the order is the data.

Line, word or character comparison

Line by line for code and config, word by word for prose where a sentence was rewritten, character by character when you need to find the one digit that changed in an ID.

Ignore what you do not care about

Fold away trailing whitespace, all whitespace, capitalisation, blank lines or comments. These change what counts as a match, never what is shown, so a case-insensitive comparison still shows you which case each side used.

Built for big files, honest about limits

Long runs of unchanged lines collapse to a summary you can expand, so a one-line change in a four-thousand-line file is one screen. Up to 500,000 characters or 30,000 lines a side, and if a limit is reached the result says so rather than quietly stopping.

At a glance

Content typesPlain text, JSON, HTML, XML, CSS/SCSS, JavaScript/TypeScript, YAML, CSV, SQL, Markdown, other code
Comparison modesLine by line, word by word, character by character
ViewsSide by side, unified, and inline for word and character mode
Built-in formattersJSON, HTML, XML, CSS, JavaScript, SQL, CSV
Ignore optionsTrailing / leading / all whitespace, capitalisation, blank lines, comments
Max input500,000 characters or 30,000 lines per side
ExportUnified diff (.patch), copy or download
AlgorithmMyers O(ND), the same minimal-diff algorithm git uses
CostFree, unlimited, no signup, no watermark

Frequently asked questions

How do I compare two files and see the difference?

Paste the first version into the left box and the second into the right, then click Find difference. Zyff highlights every added line in green, every removed line in red, and shows the exact words that changed inside a modified line. You can also drag two files straight onto the panels instead of pasting.

Can it compare JSON regardless of key order or formatting?

Yes — turn on “reformat both sides first” and “sort JSON keys”. Both sides are then pretty-printed identically and their object keys sorted, so two responses holding the same data match even if one was minified and the other had its fields in a different order. Array order is preserved, since in an array the order is part of the data.

Does the diff checker handle HTML, CSS and JavaScript?

Yes, and it reformats them before comparing if you ask it to. HTML and XML are rewritten to one node per line, CSS gets one declaration per line with canonical spacing, and JavaScript is re-indented with canonical spacing around operators — which is what lets you diff a minified bundle against its source and see only the real changes.

What is the difference between line, word and character comparison?

Line comparison is the default and the right choice for code, config and anything structured. Word comparison is better for prose, where a sentence has been rewritten and you want the changed phrases rather than “this paragraph changed”. Character comparison is for the cases where a single digit or letter matters, like an ID or a hash.

Can I ignore whitespace, case or comments?

Yes, each is a separate switch. Whitespace can be ignored at the end of lines, at both ends, or everywhere; capitalisation and blank lines each have their own toggle; and comments can be stripped for JSON, HTML, XML, CSS, JavaScript, YAML and SQL. These options change what counts as a match without changing what is displayed, so you still see the real text of both sides.

Can I download the differences?

Yes. Every comparison produces a standard unified diff you can copy or download as a .patch file — the same format git apply and the patch command read. Note that if you switched on ignore or reformat options, the patch describes the comparison as you configured it and may not apply cleanly to the untouched originals.

Are my files uploaded or stored anywhere?

Both texts are sent to Zyff's servers to be compared and are never written to disk, logged or retained — they exist for the length of one request and nothing about the response is cached. There is no account, no history and nothing to delete afterwards.

How large a file can it compare?

Up to 500,000 characters or 30,000 lines per side. Past that, compare a section rather than the whole file, or use a diff tool on a local checkout. If any limit is reached mid-comparison the result says so explicitly instead of silently showing you a partial answer.

Is the diff checker free?

Yes — it is free and unlimited, with no signup, no account and no watermark. There is no usage cap and no paid tier for it.

Guides for this tool