About this tool
This compares text line by line (not word by word). It's useful for spotting changes between drafts, config files, or code snippets.
How to use the Text Diff Checker
- Paste the original text into the left box.
- Paste the changed version into the right box.
- Click Compare — removed lines appear in red, added lines in green.
Common use cases
- Reviewing what changed between two drafts of an article or document
- Comparing two versions of a config file before deploying a change
- Spotting accidental edits in a copy-pasted code snippet
- Checking a contract or policy revision against its previous version
Worked example
Paste the previous paragraph of a terms-of-service update on the left and the revised version on the right — if a single clause changed a notice period from "30 days" to "14 days," the line containing that clause is flagged, with the old version shown as a removed (−) line and the new version as an added (+) line, so you only need to compare those two lines rather than re-reading the entire document to spot it. The tool doesn't highlight the individual changed words within a line, so keep lines reasonably short (for example, one sentence per line) if you want changes to stand out. This is especially useful for legal or policy documents, where a change can be a single word buried in a wall of otherwise-identical boilerplate text, easy to miss with a manual read-through but immediately visible once the two versions are diffed against each other.
Things to watch out for
This is a simple text-level diff that compares lines by their position (line 1 with line 1, line 2 with line 2, and so on) rather than re-aligning moved content or understanding document structure — inserting a line or reordering two paragraphs will flag every shifted line as changed, even though the actual content didn't change, just its position. For code specifically, a dedicated version-control diff (like git diff) can be more useful since it understands line-based context and can show a smaller, more targeted change set; this tool is best for prose, config values, and shorter text blocks where a full diff tool isn't necessary or available.
What counts as a difference
The checker splits both boxes into lines and compares line 1 with line 1, line 2 with line 2, and so on. Two lines match only if every character is identical. Lines that match are shown plain, and a pair that differs is shown as the original line with a minus sign in red, followed by the changed line with a plus sign in green. Because the comparison is exact, lines that look the same on screen can still be flagged:
- Case: “Total” and “total” are different lines.
- Trailing spaces or tabs: an invisible space at the end of a line counts.
- Tabs vs spaces: a tab and four spaces look alike but are different characters.
- Typographic characters: curly quotes (“ ”) vs straight quotes ("), an en dash vs a hyphen, or a non-breaking space pasted from a word processor or web page.
If you only care about the words, run both texts through the Text Cleaner first, and use the Case Converter to lowercase both when capitals do not matter.
Worked example: one inserted line
Say the original is a five-line list (Milk, Eggs, Bread, Butter, Jam) and the changed version adds Cheese as the second line. Because lines are paired by position, line 2 is now Eggs against Cheese, line 3 is Bread against Eggs, and so on. The result shows four removed lines, five added lines and only Milk unchanged, even though a single line was added.
Tools such as git diff work differently. They search for the longest sequence of lines the two versions share (Git’s default is the Myers algorithm) and report only what falls outside it, so the same edit appears as one added line, Cheese. Positional comparison is simpler and predictable, and it works best when both versions have the same number of lines, such as two exports of the same config file or a form letter with a few values changed.
Getting cleaner results
- Compare in chunks. If a paragraph was added near the top, paste the sections below it separately so the lines line up again.
- Put one sentence per line. A long paragraph is a single line, so any change flags the whole paragraph. Breaking both versions into one sentence per line narrows the result down to the sentence that changed.
- Sort lists first. When the order does not matter, sort both lists with the Text Sorter and then compare, so items that simply moved are lined up.
- Use a structural diff for data. For JSON, the JSON Diff compares by key path, so reordered keys do not count as changes.
Both texts stay in your browser, since the comparison runs in the page’s own script.
Frequently asked questions
Line by line — each line in the original is compared to the corresponding line in the changed text. If a single word changes, the entire line it's on is flagged as different.
Because comparison is done by line position rather than by re-aligning content, inserting or deleting a line shifts every subsequent line's position by one, so they all show up as changed even though only one line actually changed.
No — the comparison runs entirely in your browser with JavaScript. Neither text box is sent to a server.
Yes. Lines must match character for character, so Report and report count as different, and so do lines that differ only by a trailing space. To ignore capitalization, convert both texts to lowercase with a case converter before comparing, and trim extra spaces with a text cleaner if spacing should not count either.
Usually there is an invisible difference, such as a trailing space, a tab instead of spaces, a non-breaking space or curly quotes instead of straight ones. These often come from copying text out of a word processor or web page. Retype the suspicious character, or clean both texts first, and compare again.
Sort both lists alphabetically first, then paste them into the two boxes. Items that only moved will line up and show as unchanged, leaving the added and removed items. Because pairing is by position, a missing item still shifts the lines below it, so look for where the list stops matching.