A structured JSON comparison tool with editable panes, path search, and jsondiffpatch-powered change rows.
- Editable JSON Panes: Compare two JSON documents directly in the browser.
- Structured Diff Engine: Uses
jsondiffpatchand flattens deltas into readable path rows. - Path Search: Filters by JSON path, before value, or after value.
- Kind Filters: Narrows the diff table to added, removed, changed, or all rows.
- Review Actions: Swaps panes and formats valid JSON in place.
- Change Metrics: Shows added, removed, and changed counts.
- Clipboard Export: Copies a JSON summary of all diff rows.
src/
|-- main.tsx
|-- app.tsx # JSON parsing, jsondiffpatch flattening, filterable diff table
`-- index.css
- Preact 10 with Vite 8
- TypeScript 6
- Tailwind CSS 4
lucide-preactjsondiffpatch
public/sample-left.jsonandpublic/sample-right.jsonprovide a ready-to-compare JSON pair.- Use the in-app Load samples action to reload both panes from public files.
npm install
npm run devOpen http://localhost:5173.
- Invalid JSON is surfaced inline per panel without breaking the rest of the UI.
- The flattened diff rows are optimized for inspection and export, not for visual tree editing.
- Add RFC 6902 patch generation if this becomes a merge or review workflow.
npm run build
npm run previewThe repository includes a Vite-ready vercel.json with SPA rewrites.
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"framework": "vite",
"buildCommand": "npm run build",
"outputDirectory": "dist",
"rewrites": [
{
"source": "/(.*)",
"destination": "/index.html"
}
]
}MIT License. See LICENSE.