Local review
Review payload changes in your browser with files you provide.
- ✓In-browser workbench saved to IndexedDB
- ✓Inspect baseline and candidate contracts in your browser
- ✓Export review findings for your team workflows
DriftMap infers a structural contract from real payload samples and classifies every drift as breaking, warning, safe, or info — so you review risk, not formatting noise.
Quick start · no global install
Node.jsnpx driftmap diff --baseline main.json --candidate candidate.jsonCompare two JSON samples directly from your terminal.
v2.0-rc1: 6 changes · fields removed, retyped, or newly required. Comparing v1.0.0 to v2.0-rc1.
{ "order_id": "ORD-1004", "status": "shipped", "total": { "amount": 129, "currency": "USD" } }"USD"/data/currency
Line-level pointer slice
The field existed in the baseline contract but is absent from all candidate samples. For event compatibility this is classified as breaking.
Event payload: removed fields are treated as breaking.
Press for the command palette, or ↑/↓ and J/K to move through findings.
No custom DSL or manual JSON Schema authoring required. Drop raw response bodies or OpenAPI documents and let evidence guide the review.
Paste raw JSON payloads or import OpenAPI 3.0 specs in JSON or YAML. Group samples into baseline and candidate sets inside a local workspace.
DriftMap merges every sample into a normalized path tree, recording observed types, nullability, and whether each field was always present.
Every difference between baseline and candidate is scored by compatibility rules and surfaced with before/after evidence you can filter and export.
Built specifically for backend and platform engineers reviewing payload changes before merging pull requests.
Builds a structural contract from one or many JSON payloads or an OpenAPI 3.0 document. Array items collapse into wildcard paths like /items/*/id so heterogeneous elements are compared together.
Separates breaking changes (removed fields, narrowed types) from warnings (new nullability, required-to-optional shifts), safe additions, and informational notes.
Click any plane below to pop it forward flat at 0° for crystal-clear reading, or view the stepped 3D cascade to see how raw JSON samples collapse into a normalized wildcard tree and emit semantic drift verdicts.
Showing all 3 stepped planes in isometric cascade — click any plane to pop forward at 0°.
Copy a clean Markdown summary for pull requests or incident threads, or export and re-import the full workspace as JSON to share a review session.
### DriftMap Contract Review (`Order API v1 → v2`) | Severity | Path | Rule | Before → After | | :--- | :--- | :--- | :--- | | 🔴 **BREAKING** | `/customer/email` | `FIELD_REMOVED` | `string (req)` → `missing` | | 🟡 **WARNING** | `/customer/age` | `NULLABLE_ADDED` | `string` → `string | null` |
Payloads stay in your browser via IndexedDB by default. Nothing is uploaded unless you sign in and explicitly sync a workspace.
Line-by-line text diffs bury the real question: will existing clients fail when they parse this response? DriftMap pairs each path with the exact rule that fired and the sample evidence behind it.
Field /customer/email was present in every baseline sample (required) and is absent from the candidate samples. Consumers that read payload.data.customer.email without an optional check will see a missing key rather than a string.
DriftMap is built for fast, honest contract triage. Know the exact boundaries of sample-based inference before integrating it into your release checklist.
Inference is evidence-based, not a formal schema validator — rare fields missing from your samples won't appear in the inferred contract.
Field renames appear as a removal plus an addition; fuzzy rename matching is not performed.
OpenAPI 3.0 only (JSON and YAML); OpenAPI 3.1 and Swagger 2.0 are not parsed, and external $ref URLs are rejected.
Imports are capped at 2 MB per payload or specification document to keep in-browser parsing responsive.
Classifications are heuristic compatibility guidance, not a guarantee of runtime safety.
Local data lives in your browser's IndexedDB unless you explicitly sign in and sync.
Review API changes locally today, then bring private schema gating and shared baselines into your team CI workflow with Team CI Cloud. Team CI Cloud is currently in early access.
Review payload changes in your browser with files you provide.
Shared contract history for teams that want CI to find the baseline automatically.
Team baseline tracking is planned; pricing and availability have not been announced.
No account required. Paste two samples and see the inferred contract diff in seconds.