How to Compare Two Text Files Online —
Free, Private, No Upload
Compare any two blocks of text in your browser. Line-by-line diff, no account, nothing uploaded.
How to compare two text files online without uploading them anywhere: open a client-side text diff in your browser, paste the original on the left, paste the modified version on the right, and read the line-by-line diff. The whole process takes about two minutes and never sends your files across the network.
This guide walks through the five-step workflow, explains why a client-side diff matters when the text contains code or logs, and shows when to reach for a structural JSON diff instead of a plain text diff.
Why "Online" Is Usually a Privacy Problem
Most "online text diff" tools follow the same pattern: a form on the homepage, a POST to a server, a formatted result page. From a user's point of view this looks identical to a client-side tool — paste, click, see the diff. From a security point of view, those two architectures are completely different.
The server-side path means the contents of both files now exist on a third-party machine, where they may be:
- Logged by the application (often for "debugging") and retained indefinitely.
- Cached on a CDN if the result page is treated as a static resource.
- Sent to analytics or session-replay vendors as part of page payload tracking.
- Exposed in a future breach of the tool's database, even if the tool itself has no malicious intent.
For diffing a shopping list, none of that matters. For diffing a configuration file with API keys, a SQL migration that exposes your schema, or a production log that contains user PII — it matters a lot. The point of a client-side diff is that the architecture makes the entire class of leak impossible: no network request goes out, so nothing can be retained.
The 5-Step Workflow
1. Open the text diff tool
Go to the browser text diff. The page loads as a single HTML document with its JavaScript bundled in. There is no signup, no account, no rate limit. You can save the page to disk and run it offline if you want — the workflow is identical.
2. Paste the original on the left
The left textarea is labelled ORIGINAL // left. Paste the contents of your first file — whether that's a chunk of source code, a config file, a log slice, or plain text. The tool does not parse the content as any particular format, so there's nothing to choose from a dropdown.
3. Paste the modified version on the right
Paste your second file into the right textarea labelled MODIFIED // right. As soon as both sides have content, the diff runs automatically (with a 600 ms debounce so you can keep typing without it thrashing).
4. Read the output
The output panel shows three line types:
- Green lines with a leading
+are present only in the modified file. - Red lines with a leading
-were in the original but removed. - Gray lines are unchanged context.
The status bar at the top reports total counts ("4 line(s) added, 2 line(s) removed") so you can sanity-check at a glance.
5. Verify nothing was uploaded
The fastest way to confirm the diff really ran client-side is to open your browser's Developer Tools, switch to the Network tab, clear the log, and paste both files again. You'll see zero new requests during the comparison. For a more detailed walkthrough of this kind of audit, see how to verify a client-side tool.
Text Diff vs JSON Diff — Which to Use
Plain text diff is the right tool for code, logs, config files and prose. It is the wrong tool for JSON data, because key order matters to a line-by-line comparison but doesn't matter to the underlying object. Two JSON objects with identical content but reordered keys will show up as fully different in a text diff, which is almost never what you want.
| Content type | Use |
|---|---|
| Source code (any language) | Text diff |
| Log files, stack traces | Text diff |
| Config files (.yaml, .toml, .env) | Text diff |
| JSON API responses | JSON diff |
| JSON config (package.json, tsconfig) | JSON diff |
| SQL queries — formatting differs | Format first, then text diff |
Real-World Scenarios
Comparing two log files between deployments
Production deploy looks broken after a release. You have a "good" log from before the deploy and a "bad" log from after. Pasting both into a text diff highlights the new error lines instantly — much faster than scrolling. If the logs contain emails or tokens, run them through the log sanitizer first to redact PII before diffing.
Reviewing a config change before applying it
You're about to overwrite nginx.conf on a production server. Paste the running config on the left, the new config on the right, and you can review every added or removed directive in one screen — no SSH session required, no temp files in /tmp.
Auditing what an LLM rewrote
When you ask an LLM to refactor a function, it sometimes changes more than you asked for. Paste the original on the left and the LLM output on the right — the diff makes silent edits (renamed variables, removed comments, dropped error handling) immediately visible. For the wider safety picture of sharing code with an LLM, see how to share code with ChatGPT safely.
Comparing SQL before and after formatting
Run both queries through the SQL formatter first so whitespace and capitalisation normalise, then text-diff the formatted output. Now any reported diff is a real semantic change — not just SELECT * vs select *.
Frequently Asked Questions
Do I need to upload the files, or can I paste the contents? +
Paste the contents — the tool only takes text input, never a file handle, and never makes a network request. If you have the files open in an editor, copy with Ctrl/Cmd-A then Ctrl/Cmd-C and paste into the textarea.
Is this safe for code under NDA or under a strict SOC 2 control? +
Yes, with the standard caveat that you should verify rather than trust. The tool's JavaScript runs in your browser's sandbox, and DevTools → Network will confirm no request leaves the page during a comparison. If your policy requires a fully air-gapped session, save the page to disk and run it offline.
Does the diff highlight changes inside a line, or only whole lines? +
It diffs at the line level. Any change inside a line marks the whole line as added/removed pair. This is the same model diff -u uses on the command line and is the right granularity for most reviewing tasks. For structural comparison, use the JSON diff instead.
Can I share a diff with a coworker? +
Use the "copy" button on the diff output to copy the rendered diff (with + and - prefixes) into your clipboard. Paste into Slack, GitHub or a code review tool. There is intentionally no "share via link" feature, because that would require uploading the diff to a server.
Compare Two Texts Now — In Your Browser
Free, instant, line-by-line diff that runs entirely on your machine.