DbDiffBunker

Compare text and code, privately

Paste two versions and see exactly what changed — line by line, with word and character-level highlights inside each change. Every comparison runs in your browser. Nothing you paste is uploaded, logged, or sent anywhere, and you can confirm that in your browser's Network tab.

View
Original
Changed
Paste text into both panes to compare.

What DiffBunker does

DiffBunker takes two blocks of text — prose, source code, config files, log output, JSON, anything — and shows a line-by-line comparison. Inside each changed line it highlights the specific words or characters that differ, so you are not left scanning two nearly identical lines to find the one edit. You can switch between a side-by-side view and a unified view, ignore whitespace or letter case, hide unchanged lines to focus on the edits, and supply a regular expression for spans that should not count as changes.

How "Smart" comparison picks a level of detail

The comparison always aligns the two inputs by line first. For each pair of lines that changed, Smart mode then chooses how to highlight the difference. A short line with no spaces — an ID, a price, a commit hash, an invoice number — is compared character by character, so a change from$12.00 to$12.50highlights just the 5. A sentence-like line is compared word by word, so rewordingBill to: Acme Corp to Bill to: Acme Corporationmarks one word rather than painting the whole line red. When two lines that landed opposite each other actually share less than about a quarter of their content, they are shown as a separate deletion and addition instead of a misleading inline blend. Character, Word and Line modes are always available if you want to override the choice.

The ignore pattern, with an example

Say you are comparing two log files that are identical except that every line carries a different timestamp. Put\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}in the ignore pattern field. Before comparing, every match is stripped from both sides, so lines that differ only in their timestamp register as unchanged and drop out of the results — leaving only the log entries that genuinely changed. The lines are still displayed exactly as you pasted them. The same trick works for build numbers, request IDs, cache-busting query strings, or generated GUIDs. You can write the pattern bare or as/build #\d+/i; matching is always global.

Why it is actually private, and how to check

The entire comparison runs in a Web Worker that is bundled from this site's own source — there is no remote script, no importScripts from a CDN, no API call. The page loads its own HTML, CSS and JavaScript once when you open it, and after that it makes no network requests at all: no analytics, no ad tags, no web fonts pulled from Google, no telemetry, and no "save" or "share link" feature that would need a backend. To verify it, open developer tools, select the Network tab, paste two large blocks of text, and run comparisons with every toggle turned on. Nothing new appears. There is no sign-in and no server-side diff, so the privacy guarantee is a property of how the tool is built rather than a line in a policy.

How this differs from Diffchecker and other diff sites

Established tools in this space are fuller products. They add accounts, diffs you can save and share by link, and comparison of files, PDFs, images and spreadsheets, and their free web pages generally run third-party analytics and display ads. None of that is wrong for what those products are, but each piece is a reason for your text to leave the page or for code you did not choose to run beside it. DiffBunker keeps a single job — comparing text you paste — and removes everything that would require sending it somewhere. The trade-off is deliberate: no history, no sharing, no file support yet, in exchange for a page that provably does nothing with your input.

When to use something else

For comparing whole directories, branches or binary files, a localgit diffor a desktop diff tool is the right choice. For structured JSON where key order and formatting should not count as differences, a semantic diff is better than a text one — that is planned here as a separate tool. For resolving conflicts between three versions at once, use a dedicated three-way merge tool. DiffBunker is for the common case: two versions of something, pasted in, compared now.

Frequently asked questions

Is my text really kept private?

Yes, and not as a policy promise but as a structural fact. The comparison runs in a Web Worker built from this site's own code. The page loads its HTML, CSS and JavaScript once, then makes no further network requests — there is no analytics, no ads, no web fonts from a CDN, and no save, share or sync endpoint for it to call. Your pasted text has nowhere to go.

Can I verify that myself?

Open your browser's developer tools, go to the Network tab, paste two large blocks of text, and run a comparison with every toggle enabled. The request count does not move. Because there is no account and no server component for the diff, there is nothing to take our word for.

How is this different from Diffchecker and similar tools?

Tools like Diffchecker are broader products: they offer accounts, saved and shareable diffs, and file, PDF, image and spreadsheet comparison, and their free web pages typically load third-party analytics and ads. DiffBunker does one thing — compare text you paste — and deliberately drops every feature that would require sending that text anywhere or running scripts you did not ask for.

What does "Smart" comparison actually do?

It aligns the two inputs by line first, then decides how to highlight each changed line pair. Short lines with no spaces — IDs, amounts, hashes, invoice numbers — are compared character by character so you see the single digit that changed. Sentence-like lines are compared word by word so a reworded phrase does not light up as one solid block. You can force Character, Word or Line mode at any time.

How does the ignore pattern work?

You supply a regular expression. Before comparing, every match is removed from both sides, so a line that differs only inside a match — a timestamp, a build number, a session ID — is treated as unchanged. The text is still displayed exactly as you pasted it; only the comparison ignores those spans. You can write a bare pattern or /pattern/flags; the global flag is always applied.

How large an input can it handle?

Comfortably tens of thousands of lines per side. The work happens off the main thread, so the page stays responsive while it runs. Above roughly 200,000 combined lines, or when two very large inputs are almost entirely different, it stops rather than hang and asks you to compare smaller sections.

Does it work offline?

After the first load, yes. Nothing on the page needs the network, so once it is open you can disconnect and keep comparing.

Can I compare files or upload documents?

Not in this version — it is paste-only on purpose, to keep the privacy guarantee simple to reason about. A separate semantic JSON diff tool is planned. File upload may follow once the core is solid.