// Renamed nested value
old:
name: api
version: 1.2.3 ~ service.version: 1.2.3 → 1.3.0Start typing to search, or pick a tool.
Compare two YAML documents side by side and see exactly which keys changed, were added, or were removed — with stable, sorted paths and full client-side processing.
Document A
Document B
Diff
Both documents are parsed in your browser. The diff is computed recursively: scalar changes are reported aschanged, keys present on only one side are added or removed, and structural changes (e.g. map to string) are surfaced at the closest common parent path.
Paths are sorted alphabetically before output, so the same two inputs always produce the same diff. This makes the output easy to paste into a PR description or feed into another tool.
When working with configuration files across environments — development, staging, production — you need to know exactly what changed between versions. A standard text diff shows every line that differs, but a YAML-aware diff understands the structure and shows you which keys changed, which were added, and which were removed. This is especially valuable for Kubernetes manifests, Docker Compose files, and Ansible playbooks where a single file might have dozens of nested keys.
This diff tool parses both YAML documents and compares them recursively. It tracks the full path to every change, so you can see exactly where a value was modified in a deeply nested structure. The output is sorted alphabetically, making it deterministic — the same two inputs always produce the same diff, regardless of the order keys appear in the original files.
Added (+) — a key that exists in Document B but not in Document A. This represents a new configuration option, a new service, or a new environment variable that wasn't present before.
Removed (-) — a key that exists in Document A but not in Document B. This means a configuration option was deleted, a service was removed, or an environment variable is no longer needed.
Changed (~) — a key that exists in both documents but has a different value. The diff shows both the previous and next values so you can see exactly what was modified. This is the most common type of change in configuration files.
Kubernetes deployments. Compare your old and new deployment manifests to see exactly which container images, replicas, resource limits, or environment variables changed before applying to a cluster.
Docker Compose changes. When updating your docker-compose.yml, use this tool to verify that only the intended services were modified and no existing configuration was accidentally changed.
Configuration reviews. Before approving configuration changes in a pull request, paste both versions to see a clean, structured diff that focuses on semantic changes rather than whitespace or formatting differences.
When managing infrastructure across multiple environments, you often maintain parallel YAML files for dev, staging, and production. This diff tool helps you verify that environment-specific values (like resource limits, replica counts, or domain names) are the only differences between configurations. Structural drift — where environments accidentally diverge in unexpected ways — becomes immediately visible.
For Helm charts and Kustomize overlays, diffing the rendered output against the previous version before applying changes is a critical safety step. The structured output of this tool makes it easy to spot unintended key removals or value changes that could break a deployment. You can paste the rendered manifests from helm template or kustomize build directly into the diff panels.
// Renamed nested value
old:
name: api
version: 1.2.3 ~ service.version: 1.2.3 → 1.3.0// Added key
a: 1
b: 2 + c: 3// Removed key
a: 1
b: 2
c: 3 - c: 3Yes. Arrays are compared element-by-element, and changes inside arrays are reported at the indexed path (e.g. feature_flags.1).
A key whose scalar value differs is "changed", a key present only on one side is "added" or "removed", and structurally different nodes are reported at the parent path.
Yes. Paths are sorted and the diff is computed in key-sorted order, so the same two inputs always produce the same output.
No. Parsing and diffing both run locally in your browser. You can confirm this by opening DevTools → Network.
Yes, but very large documents may briefly pause the UI while they are parsed. For huge files, prefer the YAML formatter first to canonicalise indentation.
Yes. Comments are stripped before comparison because the underlying parser is the same one used to canonicalise both documents.