# Diff Checker

> Compare two files side by side and see every change highlighted. Free diff checker for text, JSON, HTML, CSS, JavaScript, XML, CSV and SQL — no signup needed.

- Canonical URL: https://www.zyff.app/tools/diff-checker
- Status: working
- Price: free, no signup, no watermark
- Processing: runs on Zyff's servers; input is held in memory for the request and never stored

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.

## Features

- **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.

## Specifications

| Property | Value |
| --- | --- |
| Content types | Plain text, JSON, HTML, XML, CSS/SCSS, JavaScript/TypeScript, YAML, CSV, SQL, Markdown, other code |
| Comparison modes | Line by line, word by word, character by character |
| Views | Side by side, unified, and inline for word and character mode |
| Built-in formatters | JSON, HTML, XML, CSS, JavaScript, SQL, CSV |
| Ignore options | Trailing / leading / all whitespace, capitalisation, blank lines, comments |
| Max input | 500,000 characters or 30,000 lines per side |
| Export | Unified diff (.patch), copy or download |
| Algorithm | Myers O(ND), the same minimal-diff algorithm git uses |
| Cost | Free, 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.

## Related tools

- [Case Converter](https://www.zyff.app/tools/case-converter): Title, Sentence, UPPER, lower, camelCase, snake_case.
- [Snake Case Converter](https://www.zyff.app/tools/snake-case-converter): snake_case, camelCase, kebab-case, PascalCase and CONSTANT_CASE.
- [Word Counter](https://www.zyff.app/tools/word-counter): Count words, characters, sentences, reading time and readability.
- [URL Slug Generator](https://www.zyff.app/tools/slug-generator): Turn a headline into a clean, lowercase URL slug.
