Free Text, JSON & CSV Diff Checker
Compare text, JSON or CSV in your browser. Plain text diffs line by line with the changed words highlighted inside each line; JSON is compared as data, so key order and indentation are ignored; CSV is reconciled row by row and column by column, so one inserted column no longer marks every field as changed. Choose side-by-side, unified or inline, highlight by word or by character, and ignore whitespace, case or smart quotes. Nothing is uploaded — the comparison runs on your own machine.
Comparison Tool
Paste, type, or drop a file here.
Paste, type, or drop a file here.
What Diffing Actually Does — and Why Format Matters
A diff finds the smallest set of edits that turns one version into the other. This tool uses Myers' algorithm — the same family of algorithm behind git diff — in its linear-space form, so the work scales with how different the two inputs are rather than with how long they are: two near-identical drafts compare in a single pass whether they are 500 words or 100,000. But an algorithm alone is not enough, because what counts as a difference depends entirely on what you are comparing. Reordered keys matter in prose and mean nothing in JSON. An added column shifts every field in a CSV and changes nothing about the data in it. That is why this page has three modes instead of one — what it takes to compare text properly is not what it takes to reconcile two CSV exports.
Plain text, diffed twice over: Lines are matched first, then only the lines that changed are re-diffed at word level. A pure line diff would mark a whole paragraph changed because you swapped one adjective; a pure word diff over the whole document would lose the line structure that keeps the two panes aligned. Doing both gives you aligned panes and a highlight tight enough to point at the single edited word.
JSON compared as data, not as text: Both sides are parsed, then compared structurally. Key order and indentation are ignored, so a reserialised file reads as identical; array order is preserved, because in JSON the order of an array is data. Every difference is reported at its full path — $.limits.maxWords, not "line 6" — and a value that changed type from "5" to 5 is flagged as exactly that.
CSV reconciled by row and by column: Both files are parsed to RFC 4180, so quoted commas and embedded newlines survive, and the separator (comma, semicolon, tab or pipe) is detected from the data. Columns are matched by header name, so a reordered or newly inserted column is reported once at the column level instead of as a change on every single row. Rows can be matched by position or by a key column, which is how you compare two exports whose rows were sorted differently.
Word or character granularity, and it is grapheme-aware: Character mode compares grapheme clusters, not UTF-16 code units, so a family emoji or a flag stays a single unit instead of being split into replacement boxes and counted as four changes. Word mode uses Intl.Segmenter rather than splitting on spaces, which is what lets an edit inside a Chinese or Japanese sentence be isolated to one word instead of lighting up the whole line.
Differences you can choose to ignore: Line endings are always normalised — a Windows file and its Unix copy are identical text, not 400 changed lines. Whitespace, case and substituted punctuation are switchable, which is the answer to the most common complaint about diff tools: two documents that look the same on screen reported as completely different because Word replaced every apostrophe with a curly one.
Private and off the main thread: Nothing is uploaded, and there is no account. Everything happens in a Web Worker in your own tab, so a 100,000-word manuscript does not freeze the textarea while it computes — and a confidential contract, an unreleased manuscript or a customer export never leaves your machine, which is not something a server-side diff tool can offer you.
How to Use the Diff Checker
- 1
Pick what you are comparing: Text, JSON or CSV. If both panes hold the same recognisable format, the tool offers the matching mode — click the suggestion to switch, or ignore it and stay in Text.
- 2
Paste the original into the left pane and the revision into the right, or drop a .txt, .md, .json or .csv file onto either pane. A dropped file also sets the mode from its extension.
- 3
Read the result. Side by side aligns the two versions line for line and highlights the changed words inside each line; Unified gives you the single-column minus/plus view that pastes into a code review; Inline merges both versions into one readable stream.
- 4
Narrow it down. Switch the highlight to By character when the edit is inside a word, and tick Ignore whitespace, Ignore case or Ignore smart quotes & dashes to hide the differences you do not care about.
- 5
Take the result with you. Copy as patch produces a standard unified diff; in JSON mode Copy changes gives one line per changed path; in CSV mode Copy change report gives a spreadsheet-ready list of every altered cell.
Frequently Asked Questions
Also try the Word Counter for full readability stats and keyword density on the same text.
Further reading
- How to Compare Two Texts Online Free (Word-Level Diff)
Spot every added, removed, and changed word between two drafts instantly — word-level diff, Unicode-safe, 100% in your browser. Compare your texts now.
- Compare Two Text Files Online Free (No Install, No Upload)
Diff two text files in your browser — no WinMerge, no install, no upload. Spot every changed line and word instantly, even across encodings. Compare now.
Explore More Free Text Tools
Find & Replace
Bulk text editing with full regex support
Fix Spaces
Remove extra spaces, fix PDF line breaks and clean whitespace
Remove Duplicates
Deduplicate lines with flexible matching options
Sort Lines
Sort or shuffle lines alphabetically, by length or randomly
Readability Score
Check Flesch-Kincaid grade, reading ease, and Gunning Fog index
Lorem Ipsum
Generate placeholder text by words, sentences or paragraphs
Character Limit
Check text against X, meta description, SEO title and social limits
Words to Minutes
Convert word count to speaking time and minutes to a word target
