JavaScript object diff

See every change. Prove every patch.

Explore a structural diff engine built for real JavaScript—not just JSON.

MapSetDateBigIntTypedArrayCyclesSparse arrays
Try an edge case

Built for values JSON cannot hold.

Interactive playground

Object diff

Patch reconstructs the target
BeforeOriginal object
JavaScript
AfterTarget object
JavaScript
Visual diff

4 operations to reach the target

Verified patch
{
user: {
id: 42
name: “Ari”
* role: “viewer”“admin”
}
teams: [
“platform”
+ “design”
“docs”
]
flags: {
* beta: falsetrue
}
+ lastSeen: Date(2026-07-15T00:00:00.000Z)
}
AddedChangedRemoved
01

Readable operations

Start with a human change list, then open the raw data only when you need it.

Read the guide →
02

Patch proof included

Every edit is checked by applying the generated diff back to a fresh source object.

Read the API →
03

JavaScript-native

Test collections, cycles, dates, BigInts, TypedArrays, and sparse arrays without flattening them into JSON.

Compare libraries →