What kind of schemas can I compare?
Any JSON Schema written as JSON. The tool focuses on the parts that matter for backward-compatibility: the property tree (added, removed, kept), the required list at every level, and the descriptive keywords on each property - type, format, pattern, enum, min/max length, minimum, maximum, items, default, $ref, const, multipleOf. It does not validate schemas against the spec, only diffs them.
How is this different from a plain text diff?
A text diff compares lines and shows what characters changed. This tool understands the schema structure: it knows that reordering properties is not a real change, that promoting a property from optional to required is a breaking change, and that an enum with one extra value is an additive change. The output groups results into Added, Removed, and Changed categories with semantic labels.
When would I use this in real work?
Reviewing an API contract change, comparing request or response schemas between two service versions, auditing whether a deployment changes the database shape, or verifying that a generated schema matches the hand-written one. It pairs well with OpenAPI specs - copy the relevant schema block from each version into the two textareas.
Does it understand $ref or external schemas?
It detects when a $ref string changes and flags it as a Changed attribute, but it does not follow the reference to compare the target schema. If your two schemas use the same $ref pointing to different definitions, the diff will miss those internal differences. For deep comparison, inline the referenced definitions before pasting.
Why is type-changing flagged as breaking?
Changing a property from integer to string forces every consumer to update their parsing and validation. Even if the tool calls it "Changed" rather than "Breaking," any type swap should trigger a major version bump in your API. The same applies to a stricter pattern, a smaller maxLength, or a removed enum value - they reject inputs that previously validated.
Is my data sent anywhere?
No. The diff runs entirely in your browser using JavaScript. Both schemas stay on this page and are never uploaded. Refreshing the page clears them. This makes the tool safe for proprietary or internal API schemas - paste freely, nothing leaves your machine.