Skip to content
UtraDiff
Skip to content

Help & Documentation

Learn how to compare files, explore supported formats, configure diff settings, and find answers to common questions.

Getting Started

  1. Upload your files

    Drop, paste, or click to select two files to compare. You can also import from a URL.

  2. Choose your diff mode

    UtraDiff auto-selects the best mode: Text for code, Structural for JSON/CSV/YAML, Visual for images and PDFs.

  3. Edit, customize, and compare

    Edit text directly in the diff editor — changes sync live and stats update automatically. Toggle settings like ignore whitespace, switch view modes, or swap files. All processing happens in your browser.

  4. Export your results

    Share your comparison via URL or download it. Coming soon in a future update.

Supported Formats

UtraDiff supports 103 file formats across three categories. Each format is automatically detected by file extension.

Text (81 formats)

Line-by-line diff with syntax highlighting

Text formats supported by UtraDiff
FormatExtensionsSample
ABAP.abap
Apex.cls, .trigger
ATS.dats, .sats, .hats
Azure CLI.azcli
Batch.bat, .cmd
Bicep.bicep
C.c, .h
C#.cs
C++.cpp, .hpp, .cc, .cxx
CameLIGO.mligo
Clojure.clj, .cljs, .cljc, .edn
CoffeeScript.coffee
CSP.csp
CSS.css
Cypher.cypher, .cyp
Dart.dart
DAX.dax, .msdax
Diff/Patch.diff, .patch
Dockerfile.dockerfile
ECL.ecl
Elixir.ex, .exs
F#.fs, .fsi, .fsx
Flow9.flow
FreeMarker.ftl, .ftlh, .ftlx
Go.go
GraphQL.graphql, .gql
Handlebars.handlebars, .hbs
HCL/Terraform.tf, .tfvars, .hcl
Java.java
JavaScript.js, .jsx, .mjs, .cjs
Julia.jl
Kotlin.kt, .kts
LESS.less
Lexon.lex
Liquid.liquid
Lua.lua
Makefile.mk
Markdown.md
MDX.mdx
MIPS.s
Modula-3.m3, .i3, .mg, .ig
MySQL
Objective-C.m, .mm
Pascal.pas, .p, .pp
PascaLIGO.ligo
Perl.pl, .pm
PHP.php
PLA.pla
Plain Text.txt, .log
PostgreSQL
Power Query.pq, .pqm
PowerShell.ps1, .psm1
Protocol Buffers.proto
Pug.pug, .jade
Python.py, .pyw
Q#.qs
R.r, .R
Razor.cshtml, .razor
Redis.redis
Redshift
reStructuredText.rst
Ruby.rb
Rust.rs
Scala.scala
Scheme.scm, .ss, .sch, .rkt
SCSS.scss
Shell.sh, .bash, .zsh
Small Basic.sb
Solidity.sol
Sophia.aes
SPARQL.rq, .sparql
SQL.sql
Structured Text.st, .iecst, .iecplc
Swift.swift
SystemVerilog.sv, .svh
Tcl.tcl
Twig.twig
TypeScript.ts, .tsx, .mts, .cts
TypeSpec.tsp
Visual Basic.vb, .bas
WGSL.wgsl

Structured (12 formats)

Semantic tree or table diff — understands data structure, not just text

Structured formats supported by UtraDiff
FormatExtensionsSample
CSV.csv
Environment.env
HTML.html, .htm
INI.ini, .cfg
JSON.json
JSON5.json5
JSONL.jsonl, .ndjson
Properties.properties
TOML.toml
TSV.tsv
XML.xml
YAML.yml, .yaml

Visual (10 formats)

Pixel-level, page-level, and cell-level comparison for binary formats

Visual formats supported by UtraDiff
FormatExtensionsSample
Excel.xlsx, .xls
GIF.gif
JPEG.jpg, .jpeg
ODS.ods
PDF.pdf
PNG.png
PowerPoint.pptx, .ppt
SVG.svg
WebP.webp
Word.docx, .doc

Comparison Modes

UtraDiff automatically selects the best diff mode based on your file types. You can switch modes manually using the tabs above the diff viewer.

Text

Line-by-line diff

Syntax highlighting for 80+ languages. Shows added, removed, and changed lines. Works with all text and code formats (80+ languages).

Structural

Semantic tree or table diff

Parses data into its native structure. Shows added, removed, and changed keys (JSON/YAML) or rows/cells (CSV). Supports cross-format comparison (e.g., JSON vs YAML).

Visual

Pixel and page-level diff

Compare images pixel-by-pixel (side-by-side, overlay, heatmap, onion skin), PDFs page-by-page, and spreadsheets cell-by-cell. All processing is client-side.

Cross-format comparison

Object-based formats (JSON, JSON5, YAML, TOML, INI, .env, Properties) can be compared across formats — e.g., compare a JSON config with its YAML equivalent. SVG files support all three modes: text (raw XML source), structural (DOM tree), and visual (rendered pixels).

Settings & Options

Customize your comparison using the settings bar above the diff viewer. Available settings depend on the active diff mode.

Comparison settings reference
SettingDefaultApplies to
View Modeside-by-side | inlineside-by-sideText, Structural
Ignore WhitespaceoffText
Ignore CaseoffText
Ignore Line EndingsoffText
Word WrapoffText
Context LinesallText, Structural
Render IndicatorsonText
CSV Key Column(none)Structural
Image Diff Modeside-by-side | overlay | heatmap | onion-skinside-by-sideVisual

View Mode

Choose between a side-by-side comparison or an inline (unified) view where changes appear in a single column.

Ignore Whitespace

Skip whitespace-only changes (spaces, tabs, trailing whitespace). Useful for comparing code after reformatting.

Ignore Case

Treat uppercase and lowercase letters as identical. Helpful for case-insensitive data like SQL keywords.

Ignore Line Endings

Treat CRLF (Windows) and LF (Unix) line endings as identical. Avoids noise when comparing files across operating systems.

Word Wrap

Wrap long lines to fit within the viewport instead of scrolling horizontally.

Context Lines

Controls how many unchanged lines are shown around each change. Set to "all" to show the full file. Set to a number (e.g. 3, 5, 10) to fold/collapse unchanged regions and focus on changes only. Collapsed regions show a clickable "show more" indicator.

Render Indicators

Show +/- indicators in the gutter alongside line numbers to mark added and removed lines.

CSV Key Column

Select which column uniquely identifies each row (like a primary key). Enables row-matching diff so reordered rows are compared correctly instead of position-based.

Image Diff Mode

Choose how images are compared visually: side-by-side (default), overlay (slider between A and B), heatmap (pixel differences highlighted), or onion skin (opacity blend).

Keyboard Shortcuts

All interactive elements are fully keyboard-accessible. Here are the available shortcuts.

File drop zone

Keyboard shortcuts for File drop zone
KeysAction
EnterOpen file picker
SpaceOpen file picker

URL import

Keyboard shortcuts for URL import
KeysAction
EnterFetch URL

Text diff editor

Keyboard shortcuts for Text diff editor
KeysAction
Ctrl+++VPaste content into focused editor
Ctrl+++CCopy selected text
Ctrl+++ZUndo edit
Ctrl+++Shift+++ZRedo edit

Global (comparison)

Keyboard shortcuts for Global (comparison)
KeysAction
Alt+++NNext change
Alt+++PPrevious change
Alt+++1Text diff mode
Alt+++2Structural diff mode
Alt+++3Visual diff mode
Alt+++SToggle side-by-side / inline
Alt+++WToggle word wrap
Alt+++Shift+++SSwap files
Alt+++FToggle full width / collapse

Text diff viewer

Keyboard shortcuts for Text diff viewer
KeysAction
Alt+++F5Jump to next change
Shift+++Alt+++F5Jump to previous change

Diff mode selector

Keyboard shortcuts for Diff mode selector
KeysAction
+Next mode
+Previous mode
HomeFirst available mode
EndLast available mode

Tree view (JSON, XML)

Keyboard shortcuts for Tree view (JSON, XML)
KeysAction
Next node
Previous node
Expand node or move to child
Collapse node or move to parent
Enter+SpaceToggle expand/collapse
HomeFirst node
EndLast node

Table view (CSV)

Keyboard shortcuts for Table view (CSV)
KeysAction
Next row
Previous row
HomeFirst row
EndLast row

Image diff

Keyboard shortcuts for Image diff
KeysAction
+Move slider (overlay) or adjust opacity (onion skin)
Shift+++ArrowCoarse step (10%)
HomeSlider/opacity to 0%
EndSlider/opacity to 100%
++=Zoom in (25%)
-Zoom out (25%)
0Reset zoom and pan

PDF viewer

Keyboard shortcuts for PDF viewer
KeysAction
+Previous page
+Next page

Dialogs

Keyboard shortcuts for Dialogs
KeysAction
EscapeDismiss or close
EnterConfirm action

FAQ & Troubleshooting

UtraDiff supports files up to 50 MB. All processing happens in your browser — no files are uploaded to a server (except Excel/ODS, Word, and PowerPoint which require server-side parsing). For very large files (> 5 MB), processing uses Web Workers to keep the interface responsive.

Structural diff requires both files to be compatible structured formats (e.g., both JSON, or JSON vs YAML). If one or both files are plain text or visual formats (images, PDF, Excel), structural mode is not available. You can always use text diff for a line-by-line comparison.

Yes! UtraDiff supports cross-format structural diff for object-based formats. You can compare JSON vs YAML, TOML vs INI, or any combination of JSON, JSON5, YAML, TOML, INI, .env, and Properties files. They all parse to the same object structure.

UtraDiff works in all modern browsers: Chrome, Firefox, Safari, and Edge (latest 2 versions). Internet Explorer is not supported. Some features (drag & drop) may have limited support on mobile browsers — use the tap-to-select button instead.

No. All text, structured (JSON, CSV, YAML, etc.), and image files are processed entirely in your browser. Only Excel (.xlsx/.xls), ODS, Word (.docx), and PowerPoint (.pptx) files require server-side processing for parsing. Even then, files are not stored — they are processed and discarded immediately.

SVG is unique — it supports all three diff modes. Text mode shows the raw XML source code. Structural mode shows the XML DOM tree. Visual mode renders both SVGs and compares them pixel-by-pixel. Switch between modes using the tabs in the comparison view.

By default, UtraDiff shows all differences including whitespace changes. Toggle "Ignore Whitespace" in the settings bar to hide whitespace-only changes. You can also ignore case differences and line ending differences.

Yes! Click "or import from URL" below the file drop zones on the landing page, or use the URL input in the Replace panel on the comparison page. Enter a direct file URL (http or https) and click Fetch. UtraDiff downloads the file server-side to avoid CORS issues. Limits: 100 MB max, 10 requests per minute, direct file links only (not web pages).

Yes! UtraDiff supports .docx (Word) and .pptx (PowerPoint) files. Text is extracted server-side and compared line-by-line. For Word documents, paragraphs are extracted and diffed. For PowerPoint, text from each slide is extracted and compared. The files are processed and discarded immediately — nothing is stored.

Yes! Both sides of the text diff editor are fully editable. Click anywhere in the left (original) or right (modified) panel and start typing. Your changes sync automatically — diff statistics, line counts, and change navigation update in real time. You can also paste content (Ctrl+V / ⌘V), drag and drop a file onto either side, or use the per-side toolbar to browse, import from URL, download, copy, or clear content. Undo and redo (Ctrl+Z / Ctrl+Shift+Z) work as expected.

Each side of the text diff editor has its own toolbar with five actions: Browse (open a file from disk), URL (import content from a web address), Download (save the current content as a file), Copy (copy content to clipboard), and Clear (reset the side to empty). The URL import fetches the file server-side to avoid CORS issues. You can also drop a file directly onto either editor panel to replace its content.

When comparing CSV files in structural mode, the "CSV Key Column" setting tells UtraDiff which column uniquely identifies each row (like a primary key). This enables row-matching diff instead of position-based diff — so if rows are reordered, you see actual value changes, not every row as changed.

Yes, UtraDiff is completely free with no ads, no accounts, and no paywalls. All features are available to everyone — unlimited comparisons, all 100+ formats, and all diff modes. There is no premium tier or paid plan.

Drop or upload two JSON files on the landing page. UtraDiff auto-detects the format and opens structural mode, which shows a tree diff with added, removed, and changed keys. You can also switch to text mode for a line-by-line comparison. JSON5, JSONL, and cross-format comparisons (e.g., JSON vs YAML) are also supported.

Yes. All text, code, structured data, and image comparisons run entirely in your browser. Your files are never sent to a server — they stay on your device. The only exceptions are Excel (.xlsx), Word (.docx), and PowerPoint (.pptx) files, which require server-side parsing. Even then, files are processed immediately and never stored.