Diff (Side-by-side / Structured / Patch)
Three views of the same comparison.
Side-by-side
A read-only Monaco diff. Line-level granularity, with the right-pane being your live editor reformatted. Good for visual scanning.
Structured
A list of every added / removed / modified path with before-after values. Powered by an LCS (longest-common-subsequence) array diff — prepending one element marks just that element as `added`, not every subsequent index as `modified`. For arrays of objects, identity keys (`id`/`uuid`/`key`/`_id`/`name`) drive the alignment when present.
JSON Patch (RFC 6902)
Emits a list of `add` / `remove` / `replace` operations with proper JSON Pointer paths. Copy this and use it directly with `PATCH /resource` calls.
Semantic toggles
Three toggles at the top: `Ignore key order` (sort keys before diffing), `Ignore string whitespace` (collapse internal whitespace), `Arrays as sets` (treat arrays as unordered multisets). All combine.
Examples
Diff two Stripe webhooks
You suspect a webhook payload changed shape between API versions.
- Paste old payload in the older pane (left).
- Paste new payload in the editor (middle).
- Open Structured view — every changed path lists with before/after.
- Click any row to jump to it in side-by-side.
Generate a JSON Patch for an API call
Your backend supports PATCH /users/:id with RFC 6902 ops.
- Put the existing user state in the older pane.
- Edit the editor to reflect the desired state.
- Switch the diff to Patch mode — copy the operations array.
- Send it as the request body.