About DiffCanvas
DiffCanvas compares two versions of anything text-shaped — a config file before and after a deploy, two drafts of a contract clause, a pasted stack trace from yesterday and today, a translation and its revision. It lines the versions up, tells you which lines were added, removed or edited, marks the words that actually moved inside an edited line, and lets you carry the result away as a patch or a merged file.
The tool is a single static page. It has no backend, no accounts, no cookies and no analytics: the files you open are read by the browser's File API and the comparison runs in JavaScript on your own machine. Nothing is uploaded, nothing is stored between visits except your language and theme preference, and the page keeps working after you go offline. That is a design decision, not a promise — there is simply nowhere for the text to go.
It is built and maintained by Interhive OÜ, a small studio in Tallinn that makes tiny, dependable web tools.
What it does
Two views of the same change
Side by side with synchronised scrolling, or inline in the unified format used by git and code review. Long unchanged stretches fold away; the context selector decides how much surrounding text stays visible.
Options that decide what counts
Ignore trailing, leading or all whitespace, ignore case, ignore blank lines, switch word-level marks on and off, and turn on JSON-aware mode to compare two JSON documents by meaning instead of by text.
Merge without a merge tool
Every hunk carries Take original and Take changed buttons. The merged file builds up as you go and downloads as plain text; the comparison itself can be exported as a unified .diff patch.
Light syntax colouring
A small built-in tokeniser colours JSON, JavaScript and TypeScript, CSS, HTML and XML, Markdown, Python, YAML, SQL and shell scripts, so structure stays readable underneath the diff colours.
Get in touch
Found a bug, hit a file DiffCanvas mishandles, or want a language added to the syntax colouring? Write to us — we read every message.