Text Diff & Line Compare
Put the original on the left and the changed version on the right, then compare: unchanged runs collapse, the changed regions stay in both views, and trailing spaces and tabs are drawn so a line that looks identical still explains why it is marked.
Unified view
Trailing spaces are drawn as · and tabs as →, so a line that looks unchanged but is marked is still explainable.
Side by side
Only the changed regions are listed here, with a few unchanged lines of context around each one.
How to use
- Paste the earlier text into Original and the newer one into Changed, or press Load sample to see the two views filled with a realistic config file first.
- Press Compare. The unified view lists every line with a +/- marker and collapses long runs of identical content into an expandable “unchanged lines hidden” row; press Swap sides if you pasted them the other way round.
- Switch to Side by side to read the same changes as two aligned columns, old next to new, with a few lines of context around each changed region and (no matching line) where one side has nothing to pair with.
- Check the badges for added, removed, unchanged and similarity, toggle Ignore trailing whitespace if the difference is only spacing, then press Copy diff to take out the unified text.
Frequently asked questions
Why is a line marked as changed when both sides look identical?
Almost always invisible whitespace. Trailing spaces, a tab where the other side uses four spaces, or a missing final newline all change a line without changing how it looks. The tool draws trailing spaces as · and tabs as →, so the difference becomes visible, and when only the last line differs because one file ends with a newline and the other does not, it says so explicitly (\ No newline at end of file). If you want that difference ignored, tick Ignore trailing whitespace and compare again.
Does it compare lines, words or characters?
Lines. Each side is split at newlines and the two lists are aligned optimally, so a changed sentence in the middle of a long paragraph shows as that whole line being removed and re-added rather than just the words inside it. That is the same granularity git diff uses, and Copy diff outputs the same +/- rows, per-side line numbers and @@ hunk headers — but no --- / +++ file header, no rename or binary detection, so the result reads well in a commit message or review comment rather than being a patch git apply can consume. For prose where you care about the words, split the text into shorter lines first — one sentence per line diff far more usefully than one long paragraph per line.
How much text can I compare, and is it sent anywhere?
Each side may hold up to 4000 lines; beyond that the tool refuses and asks you to paste only the section you care about, because an entire file is rarely what you wanted to read. It also caps how much it aligns at once, so a change at the very top and another at the very bottom of a large paste reports that the span is too wide instead of freezing the page. The copied diff is cut off above 200,000 characters with a marker saying so. Nothing leaves your machine: alignment runs in this page with no dependency and no upload, which is what makes it safe to diff dumps and configs containing real credentials.
Guides
Related tools
JSON Formatter & Validator
Paste JSON to format, minify or validate it, with the exact line and column of any syntax error. Works offline and never uploads your data.
Unix Timestamp Converter
Convert a Unix timestamp to dates across time zones, or a date back to seconds and milliseconds. The assumed unit is always shown. Runs in your browser.
UUID Generator
Make 1 to 1000 UUIDs locally with the browser CSPRNG, including time-ordered v7 per RFC 9562. Copy the list or download a .txt. Nothing leaves your device.