A local-first desktop workspace for visualizing, editing, versioning, converting, and generating code from structured data.
JSONMap is a local-first structured data workspace designed for both non-technical users and developers. Drop a file, explore it as a graph, edit safely, keep snapshots, convert formats, and generate typed descriptors without sending private data to an online service.
- 🚀 Multi-Format Support: Open, edit, convert, and export JSON, YAML, XML, TOML, and CSV.
- 📂 In-Memory Workspace: Drag and drop local files, switch between documents, reset to the original version, and export modified copies.
- 🕸️ Interactive Graph: Navigate deep hierarchies with a zoomable graph, search nodes, and expand or collapse branches.
- ⚡ Large-File Graph Mode: Parse and transform graph data through a worker pipeline, show a shallow preview first, and load deferred branches on demand.
- ✍️ Safe Editing: Edit JSON scalar values from the inspector, copy JSONPath values, copy or export subtrees, and keep raw content visible.
- 🧾 Versioning and Diff: Create named snapshots, restore previous versions, export snapshots, and compare changes.
- 🔒 Privacy First: All processing happens locally. Your data never leaves your machine.
- 🛠️ Developer Tools:
- JQ and JSONPath: Query the active document, copy results, or create result documents.
- Format Conversion: Convert the active document into JSON, YAML, TOML, XML, or CSV.
- JWT Decoder: Inspect tokens without external websites.
- Anonymizer: Mask PII/sensitive data with one click and save a redacted snapshot.
- JSON Schema: Infer schemas, validate the active JSON, and create
.schema.jsonworkspace documents. - Code Generation: Create TypeScript, Python dataclass, Pydantic v2, Go, and Rust serde documents from JSON.
- 🎨 Native Experience:
- Dark/Light mode support.
- Native macOS vibrancy and blur effects.
- Keyboard shortcuts for efficiency.
The v1.8 large-file milestone is implemented:
- TypeScript interfaces as
.tsdocuments. - Python dataclasses as
.pydocuments. - Pydantic v2 models as
.pydantic.pydocuments. - Go structs as
.godocuments. - Rust serde structs as
.rsdocuments. - JSON Schema inference and validation as
.schema.jsondocuments. - Stable fixture snapshots for generated TypeScript, Python, Pydantic, Go, and Rust output.
- Worker-backed graph processing with progressive previews.
- Lazy branch loading and structure-first graph limits for large JSON documents.
- Generated 1 MiB, 5 MiB, and 20 MiB graph benchmark fixtures.
Next focus: v2.0 public-release readiness, including architecture docs, reproducible release hardening, and signing/notarization planning.
| Visualizer Graph | Editor & Tools |
|---|---|
![]() |
![]() |
- Go to the Releases page.
- Download the latest
.dmgfile (JSONMap_x64.dmgorJSONMap_aarch64.dmg). - Open the
.dmgand drag JSONMap to your Applications folder.
Important
macOS Security Note: JSONMap is intentionally distributed without Apple signing/notarization for now. If macOS says the app is "damaged" or cannot be opened, drag JSONMap to Applications, then run:
xattr -dr com.apple.quarantine /Applications/JSONMap.appIf macOS reports a permission error, rerun the same command with sudo.
Prerequisites:
# Clone the repository
git clone https://github.com/Boblebol/JSONMap.git
cd JSONMap
# Install dependencies
pnpm install
# Run in development mode
pnpm tauri dev
# Run the web shell only
pnpm run dev
# Run frontend tests
pnpm test --run
# Run graph large-file benchmarks
pnpm benchmark:graph
# Run backend tests
cd src-tauri
cargo test --locked
# Build for production
pnpm tauri buildBefore opening a pull request or cutting a release candidate, run:
pnpm test --run
pnpm benchmark:graph
pnpm run build
cd src-tauri && cargo test --lockedThe current frontend build emits a Vite chunk-size warning because Quicktype is bundled for in-app code generation. That warning is tracked as future performance work; it is not currently a build failure.
Large-file graph behavior and benchmark notes are documented in docs/performance.md.
Contributions are welcome! Please check our Contributing Guidelines and see the Code of Conduct.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with passion by Alexandre Enouf. Check out my other projects on GitHub.

