Help & Documentation
Learn how to compare files, explore supported formats, configure diff settings, and find answers to common questions.
Getting Started
Upload your files
Drop, paste, or click to select two files to compare. You can also import from a URL.
Choose your diff mode
UtraDiff auto-selects the best mode: Text for code, Structural for JSON/CSV/YAML, Visual for images and PDFs.
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.
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
| Format | Extensions | Sample | Diff mode | Description |
|---|---|---|---|---|
| ABAP | .abap | Text | SAP's proprietary programming language for business applications. Used in enterprise resource planning and financial systems. | |
| Apex | .cls, .trigger | Text | Salesforce's strongly-typed programming language for building business logic on the Force.com platform. | |
| ATS | .dats, .sats, .hats | Text | A statically-typed functional language with dependent types and linear types for systems programming with formal verification. | |
| Azure CLI | .azcli | Text | Azure CLI command scripts for managing Microsoft Azure cloud resources and services. | |
| Batch | .bat, .cmd | Text | Windows batch scripts for task automation and system administration. Executed by the Windows command interpreter. | |
| Bicep | .bicep | Text | A domain-specific language for deploying Azure resources declaratively. Simpler alternative to ARM templates. | |
| C | .c, .h | Text | A low-level systems programming language. The foundation for operating systems, embedded systems, and performance-critical code. | |
| C# | .cs | Text | A modern, object-oriented language by Microsoft. Used for .NET applications, Unity game development, and enterprise software. | |
| C++ | .cpp, .hpp, .cc, .cxx | Text | An extension of C with object-oriented features. Used in game engines, high-performance computing, and system software. | |
| CameLIGO | .mligo | Text | An OCaml-inspired smart contract language for the Tezos blockchain. Part of the LIGO language family. | |
| Clojure | .clj, .cljs, .cljc, .edn | Text | A modern Lisp dialect on the JVM emphasizing immutability and concurrency. ClojureScript compiles to JavaScript. | |
| CoffeeScript | .coffee | Text | A language that compiles to JavaScript with a cleaner syntax inspired by Ruby and Python. | |
| CSP | .csp | Text | Content Security Policy definitions for controlling which resources a web page can load. Used in HTTP security headers. | |
| CSS | .css | Text | Cascading Style Sheets for styling web pages. Controls layout, colors, fonts, and responsive design. | |
| Cypher | .cypher, .cyp | Text | Neo4j's declarative graph query language for pattern matching and traversing nodes and relationships. | |
| Dart | .dart | Text | A client-optimized language by Google. The primary language for Flutter cross-platform app development. | |
| DAX | .dax, .msdax | Text | Data Analysis Expressions for Microsoft Power BI, Analysis Services, and Power Pivot formula calculations. | |
| Diff/Patch | .diff, .patch | Text | Unified diff format showing changes between two files. Used by version control systems and code review tools. | |
| Dockerfile | .dockerfile | Text | Instructions for building Docker container images. Defines the base image, dependencies, and runtime configuration. | |
| ECL | .ecl | Text | Enterprise Control Language for the HPCC Systems big data platform. Declarative language for data-intensive computing. | |
| Elixir | .ex, .exs | Text | A functional language on the Erlang VM designed for scalable, fault-tolerant applications. Known for the Phoenix web framework. | |
| F# | .fs, .fsi, .fsx | Text | A functional-first .NET language with strong type inference. Used for data science, web development, and financial modeling. | |
| Flow9 | .flow | Text | A functional programming language with automatic UI generation and cross-platform compilation capabilities. | |
| FreeMarker | .ftl, .ftlh, .ftlx | Text | A Java template engine for generating HTML, email, configuration files, and source code from templates. | |
| Go | .go | Text | A statically-typed language by Google designed for simplicity, concurrency, and fast compilation. Popular for cloud infrastructure and CLI tools. | |
| GraphQL | .graphql, .gql | Text | A query language for APIs with a type system. Compare schema definitions, queries, and mutations. | |
| Handlebars | .handlebars, .hbs | Text | A logic-less templating language extending Mustache. Commonly used in Ember.js and email template systems. | |
| HCL/Terraform | .tf, .tfvars, .hcl | Text | HashiCorp Configuration Language for defining infrastructure as code. Used by Terraform, Packer, and Vault. | |
| Java | .java | Text | A strongly-typed, object-oriented language widely used in enterprise applications, Android development, and backend services. | |
| JavaScript | .js, .jsx, .mjs, .cjs | Text | The most widely used programming language for web development, running in browsers and on servers via Node.js. | |
| Julia | .jl | Text | A high-performance language for scientific computing, data science, and numerical analysis. Combines speed with ease of use. | |
| Kotlin | .kt, .kts | Text | A modern, concise language for JVM and Android development. Fully interoperable with Java. | |
| LESS | .less | Text | A CSS preprocessor with variables, mixins, and functions. Similar to SCSS with a slightly different syntax. | |
| Lexon | .lex | Text | A language for writing legal contracts as code. Designed to be readable by both lawyers and machines. | |
| Liquid | .liquid | Text | Shopify's template language for building dynamic storefronts. Also used by Jekyll and other static site generators. | |
| Lua | .lua | Text | A lightweight, embeddable scripting language. Popular in game development, Neovim plugins, and embedded systems. | |
| Makefile | .mk | Text | Build automation scripts using GNU Make. Defines targets, dependencies, and shell commands for compiling projects. | |
| Markdown | .md | Text | A lightweight markup language for formatting plain text. Used in README files, documentation, and content management. | |
| MDX | .mdx | Text | Markdown with embedded JSX components. Used in documentation sites, blogs, and content-driven React applications. | |
| MIPS | .s | Text | MIPS assembly language for the MIPS instruction set architecture. Widely used in computer architecture education. | |
| Modula-3 | .m3, .i3, .mg, .ig | Text | A systems programming language descended from Modula-2. Influenced Java and C# with its module and type system. | |
| MySQL | Text | MySQL-specific SQL dialect with extensions for stored procedures, triggers, and MySQL-specific functions. | ||
| Objective-C | .m, .mm | Text | Apple's legacy language for macOS and iOS development. Adds Smalltalk-style messaging to C. Predecessor to Swift. | |
| Pascal | .pas, .p, .pp | Text | A structured programming language by Niklaus Wirth. Still used via Delphi and Free Pascal for desktop applications. | |
| PascaLIGO | .ligo | Text | A Pascal-inspired smart contract language for the Tezos blockchain. Part of the LIGO language family. | |
| Perl | .pl, .pm | Text | A flexible text-processing language used for system administration, web development, and bioinformatics. | |
| PHP | .php | Text | A server-side scripting language powering a large portion of the web, including WordPress and Laravel applications. | |
| PLA | .pla | Text | Programmable Logic Array format for describing digital logic circuits as sum-of-products expressions. | |
| Plain Text | .txt, .log | Text | Unformatted text files and log files. The universal fallback format for any text-based content. | |
| PostgreSQL | Text | PostgreSQL-specific SQL dialect with extensions for PL/pgSQL, CTEs, and PostgreSQL-specific functions. | ||
| Power Query | .pq, .pqm | Text | Microsoft's M language for data transformation in Power BI, Excel, and Azure Data Factory. | |
| PowerShell | .ps1, .psm1 | Text | Microsoft's cross-platform task automation framework. Combines a command-line shell with a scripting language. | |
| Protocol Buffers | .proto | Text | Google's language-neutral data serialization format. Used with gRPC for defining service APIs and message schemas. | |
| Pug | .pug, .jade | Text | A high-performance template engine with indentation-based syntax. Formerly known as Jade. Compiles to HTML. | |
| Python | .py, .pyw | Text | A versatile, readable programming language used for web development, data science, automation, and AI/ML. | |
| Q# | .qs | Text | Microsoft's domain-specific language for quantum computing algorithms and quantum circuit simulation. | |
| R | .r, .R | Text | A language for statistical computing and data visualization. Widely used in academia and data science. | |
| Razor | .cshtml, .razor | Text | ASP.NET's template syntax mixing C# with HTML. Used in Razor Pages and Blazor component development. | |
| Redis | .redis | Text | Redis command scripts for interacting with the Redis in-memory data store. Used for caching and message brokering. | |
| Redshift | Text | Amazon Redshift SQL dialect with extensions for columnar storage, distribution keys, and Redshift-specific functions. | ||
| reStructuredText | .rst | Text | A markup language used by Python's Sphinx documentation generator. Standard for Python project documentation. | |
| Ruby | .rb | Text | A dynamic, expressive language designed for developer happiness. Known for the Ruby on Rails web framework. | |
| Rust | .rs | Text | A systems programming language focused on safety and performance. Guarantees memory safety without a garbage collector. | |
| Scala | .scala | Text | A language combining object-oriented and functional programming on the JVM. Used for big data processing with Apache Spark. | |
| Scheme | .scm, .ss, .sch, .rkt | Text | A minimalist Lisp dialect emphasizing functional programming. Widely used in computer science education and research. | |
| SCSS | .scss | Text | A CSS preprocessor adding variables, nesting, mixins, and functions. Compiles to standard CSS. | |
| Shell | .sh, .bash, .zsh | Text | Unix shell scripts for task automation, system administration, and CI/CD pipelines. | |
| Small Basic | .sb | Text | Microsoft's simplified BASIC dialect designed for beginners learning to program. Features a minimal API. | |
| Solidity | .sol | Text | The primary language for Ethereum smart contracts. Statically-typed with a JavaScript-like syntax for blockchain development. | |
| Sophia | .aes | Text | A functional smart contract language for the Aeternity blockchain. ML-inspired with built-in state management. | |
| SPARQL | .rq, .sparql | Text | A query language for RDF graph databases and the Semantic Web. Standard for querying linked data and knowledge graphs. | |
| SQL | .sql | Text | Structured Query Language for database operations. Compare schema migrations, stored procedures, and query files. | |
| Structured Text | .st, .iecst, .iecplc | Text | An IEC 61131-3 programming language for industrial automation and PLC programming. Pascal-like syntax. | |
| Swift | .swift | Text | Apple's modern programming language for iOS, macOS, watchOS, and tvOS development. Safe, fast, and expressive. | |
| SystemVerilog | .sv, .svh | Text | A hardware description and verification language for designing and testing integrated circuits and FPGAs. | |
| Tcl | .tcl | Text | Tool Command Language — a dynamic scripting language used for rapid prototyping, testing, and GUI development with Tk. | |
| Twig | .twig | Text | A flexible PHP template engine used by the Symfony framework. Features sandboxing and template inheritance. | |
| TypeScript | .ts, .tsx, .mts, .cts | Text | A typed superset of JavaScript that compiles to plain JS. Adds static types, interfaces, and modern language features. | |
| TypeSpec | .tsp | Text | Microsoft's language for defining API contracts. Generates OpenAPI specs, client libraries, and server stubs. | |
| Visual Basic | .vb, .bas | Text | Microsoft's event-driven programming language. Used in legacy enterprise applications and Office VBA macros. | |
| WGSL | .wgsl | Text | WebGPU Shading Language for writing GPU compute and rendering shaders in web applications. |
Structured (12 formats)
Semantic tree or table diff — understands data structure, not just text
| Format | Extensions | Sample | Diff mode | Description |
|---|---|---|---|---|
| CSV | .csv | Structural | Comma-separated values for tabular data. The universal format for spreadsheet data exchange and database exports. | |
| Environment | .env | Structural | Environment variable files with key=value pairs. Used to configure application secrets and settings per environment. | |
| HTML | .html, .htm | Structural | HyperText Markup Language — the standard markup for web pages. Supports both text diff and structural DOM tree diff. | |
| INI | .ini, .cfg | Structural | A simple configuration format with sections and key-value pairs. Common in Windows applications and PHP configuration. | |
| JSON | .json | Structural | JavaScript Object Notation — the most common data interchange format. Used for APIs, configuration, and data storage. | |
| JSON5 | .json5 | Structural | An extension of JSON that allows comments, trailing commas, and unquoted keys. More human-friendly for configuration files. | |
| JSONL | .jsonl, .ndjson | Structural | Newline-delimited JSON — one JSON object per line. Used for log streams, data pipelines, and bulk data processing. | |
| Properties | .properties | Structural | Java properties files with key=value pairs. Used for application configuration and internationalization in JVM projects. | |
| TOML | .toml | Structural | Tom's Obvious Minimal Language — a configuration file format designed to be easy to read. Used by Cargo (Rust) and pyproject.toml. | |
| TSV | .tsv | Structural | Tab-separated values — similar to CSV but uses tabs as delimiters. Common in bioinformatics and data analysis. | |
| XML | .xml | Structural | Extensible Markup Language for structured data. Used in configuration files, web services (SOAP), and document formats. | |
| YAML | .yml, .yaml | Structural | A human-readable data serialization format. Popular for configuration files (Docker Compose, Kubernetes, CI/CD). |
Visual (10 formats)
Pixel-level, page-level, and cell-level comparison for binary formats
| Format | Extensions | Sample | Diff mode | Description |
|---|---|---|---|---|
| Excel | .xlsx, .xls | Visual | Microsoft Excel spreadsheets. Compare cell values, formulas, and structure across sheets. | |
| GIF | .gif | Visual | Graphics Interchange Format supporting animation and transparency. Compared as a static image (first frame). | |
| JPEG | .jpg, .jpeg | Visual | The most common lossy image format. Used for photographs and web images where file size matters. | |
| ODS | .ods | Visual | OpenDocument Spreadsheet — the open standard equivalent of Excel. Same cell-level comparison capabilities. | |
| Visual | Portable Document Format for documents, reports, and forms. Compare page-by-page with text extraction and visual overlay. | |||
| PNG | .png | Visual | Portable Network Graphics — lossless image format with transparency. Ideal for screenshots, UI assets, and diagrams. | |
| PowerPoint | .pptx, .ppt | Visual | Microsoft PowerPoint presentations. Slide content extracted and compared as text. | |
| SVG | .svg | Visual | Scalable Vector Graphics — XML-based vector images. Supports all three diff modes: text (source), structural (DOM tree), and visual (rendered pixels). | |
| WebP | .webp | Visual | A modern image format by Google offering both lossy and lossless compression with smaller file sizes than JPEG/PNG. | |
| Word | .docx, .doc | Visual | Microsoft Word documents. Text extracted and compared with formatting indicators. |
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.
Line-by-line diff
Syntax highlighting for 80+ languages. Shows added, removed, and changed lines. Works with all text and code formats (80+ languages).
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).
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.
| Setting | Default | Applies to | Description |
|---|---|---|---|
| View Modeside-by-side | inline | side-by-side | Text, Structural | Choose between a side-by-side comparison or an inline (unified) view where changes appear in a single column. |
| Ignore Whitespace | off | Text | Skip whitespace-only changes (spaces, tabs, trailing whitespace). Useful for comparing code after reformatting. |
| Ignore Case | off | Text | Treat uppercase and lowercase letters as identical. Helpful for case-insensitive data like SQL keywords. |
| Ignore Line Endings | off | Text | Treat CRLF (Windows) and LF (Unix) line endings as identical. Avoids noise when comparing files across operating systems. |
| Word Wrap | off | Text | Wrap long lines to fit within the viewport instead of scrolling horizontally. |
| Context Lines | all | Text, Structural | 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 | on | Text | Show +/- indicators in the gutter alongside line numbers to mark added and removed lines. |
| CSV Key Column | (none) | Structural | 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 Modeside-by-side | overlay | heatmap | onion-skin | side-by-side | Visual | 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). |
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
| Keys | Action |
|---|---|
| Enter | Open file picker |
| Space | Open file picker |
URL import
| Keys | Action |
|---|---|
| Enter | Fetch URL |
Text diff editor
| Keys | Action |
|---|---|
| Ctrl+++V | Paste content into focused editor |
| Ctrl+++C | Copy selected text |
| Ctrl+++Z | Undo edit |
| Ctrl+++Shift+++Z | Redo edit |
Global (comparison)
| Keys | Action |
|---|---|
| Alt+++N | Next change |
| Alt+++P | Previous change |
| Alt+++1 | Text diff mode |
| Alt+++2 | Structural diff mode |
| Alt+++3 | Visual diff mode |
| Alt+++S | Toggle side-by-side / inline |
| Alt+++W | Toggle word wrap |
| Alt+++Shift+++S | Swap files |
| Alt+++F | Toggle full width / collapse |
Text diff viewer
| Keys | Action |
|---|---|
| Alt+++F5 | Jump to next change |
| Shift+++Alt+++F5 | Jump to previous change |
Diff mode selector
| Keys | Action |
|---|---|
| →+↓ | Next mode |
| ←+↑ | Previous mode |
| Home | First available mode |
| End | Last available mode |
Tree view (JSON, XML)
| Keys | Action |
|---|---|
| ↓ | Next node |
| ↑ | Previous node |
| → | Expand node or move to child |
| ← | Collapse node or move to parent |
| Enter+Space | Toggle expand/collapse |
| Home | First node |
| End | Last node |
Table view (CSV)
| Keys | Action |
|---|---|
| ↓ | Next row |
| ↑ | Previous row |
| Home | First row |
| End | Last row |
Image diff
| Keys | Action |
|---|---|
| ←+→ | Move slider (overlay) or adjust opacity (onion skin) |
| Shift+++Arrow | Coarse step (10%) |
| Home | Slider/opacity to 0% |
| End | Slider/opacity to 100% |
| ++= | Zoom in (25%) |
| - | Zoom out (25%) |
| 0 | Reset zoom and pan |
PDF viewer
| Keys | Action |
|---|---|
| ←+↓ | Previous page |
| →+↑ | Next page |
Dialogs
| Keys | Action |
|---|---|
| Escape | Dismiss or close |
| Enter | Confirm 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.