Local-first data conversion and JSON manipulation for developers.
Input → Transform → Output ↑ ↑ ↓ CSV Validate TypeScript XML Format Schema YAML Repair Tree View
No server. No telemetry. Deterministic output.
What It Does
Convert, validate, format, and transform JSON and related data formats. Everything runs in your browser. Nothing leaves your machine.
Formats: JSON, CSV, XML, YAML, CSS
Operations: Convert, Format, Minify, Validate, Repair, Diff, Query, Transform
Output: JSON, TypeScript interfaces, JSON Schema, Tree view
Capabilities
| Module | Input | Output | Notes |
|---|---|---|---|
| CSV | CSV, TSV | JSON | Column filter, transpose, delimiter auto-detect |
| JSON | CSV | Array-of-objects to CSV | |
| XML | XML | JSON | Preserves attributes, compact mode |
| JSON | XML | Configurable output | |
| YAML | YAML | JSON | Full YAML 1.2 support |
| JSON | YAML | Flow style, custom indent | |
| CSS | CSS | JSON | Rule-based parsing |
| Format | JSON | JSON | Beautify, minify, sort keys |
| Validate | JSON | Report | Syntax check, schema validation |
| Repair | Broken JSON | Valid JSON | Fixes trailing commas, single quotes, comments |
| Diff | 2× JSON | Diff view | Visual comparison, ignore order option |
| Query | JSON + JSONPath | JSON subset | Standard JSONPath expressions |
| Schema | JSON | JSON Schema | Draft-07 generation |
| Transform | JSON | TypeScript | Interfaces, types, JSDoc |
| Utilities | String | String | Base64, URL encode/decode, escape |
| Tree | JSON | Tree view | Interactive expand/collapse |
Examples
CSV to JSON
Input:
name,role,active
Alice,admin,true
Bob,user,false
Output:
[
{"name": "Alice", "role": "admin", "active": true},
{"name": "Bob", "role": "user", "active": false}
]
JSON to TypeScript
Input:
{"id": 1, "name": "Product", "price": 29.99, "tags": ["sale"]}
Output:
interface Root {
id: number;
name: string;
price: number;
tags: string[];
}
Repair Broken JSON
Input:
{name: 'Alice', active: true,} // single quotes + trailing comma
Output:
{"name": "Alice", "active": true}
Why Local Execution?
| Concern | Server-based tools | JSON Toolbox |
|---|---|---|
| Data privacy | Data sent to third party | Data never leaves browser |
| PII handling | Compliance risk | No compliance burden |
| Offline use | Requires internet | Works offline after first load |
| Speed | Network latency | Instant |
| Determinism | Server may change | Same input = same output |
| Enterprise use | May violate policy | IT-friendly |
When This Matters
- Converting customer data (PII)
- Working with API keys or credentials
- Processing proprietary business data
- Working in air-gapped environments
- Requiring audit-compliant workflows
- Needing reproducible output
Use Cases
Enterprise/Compliance
Convert production data exports without sending sensitive information to external services.
API Development
Transform API responses to TypeScript interfaces. Validate against JSON Schema.
Data Engineering
Convert between CSV, JSON, YAML, XML for pipeline debugging.
Sysadmin/DevOps
Format and validate configuration files. Repair malformed JSON from logs.
Education
Learn data formats with instant feedback. No account required.
Offline/Travel
Full functionality without internet after initial page load.
Privacy & Security
| Item | Status |
|---|---|
| Data sent to server | Never |
| Analytics/telemetry | Aggregate only (cookieless, self-hosted) |
| Cookies | None |
| Account required | No |
| Network requests during use | None |
| localStorage | Opt-in (saves last input per tab) |
Suitable for:
- Personally Identifiable Information (PII)
- Financial data
- Healthcare data (PHI)
- Proprietary business data
- API keys and credentials (for testing)
Privacy Manifesto
JSON Toolbox follows a strict privacy-first philosophy:
- 1. Your data stays on your machine
- All processing happens in the browser. Nothing is sent to backend.
- 2. No identification
- No cookies. No fingerprints. No session IDs. No user IDs.
- 3. Opt-in storage
- localStorage is only used to save your preferences. Cleared with one click.
- 4. Transparent analytics
- Aggregate usage statistics only. Self-hosted on same infrastructure.
- 5. No reconstruction
- Impossible to reconstruct individual sessions or user behaviors.
We believe tools should help, not surveil.
Observability & Analytics
JSON Toolbox uses privacy-first analytics to improve the tool:
| What is collected | Page views, tab switches, operation types (format/validate/convert), theme choice, language choice |
| How it works | Self-hosted Matomo | Cookieless mode | POST requests | Respects DNT |
| What is NOT collected | Your JSON data | IP address (anonymized) | Session replay | Browser fingerprint | Identifiers |
Disable analytics
Add to your code before page load:
<script>window.ANALYTICS_DISABLED = true;</script>
PII & Enterprise Compatibility
JSON Toolbox is designed for enterprise environments with strict data policies:
- GDPR-friendly
- No personal data collected. No consent banners needed.
- HIPAA-compatible
- PHI never leaves the browser. No third-party exposure.
- SOX-compliant
- Deterministic output. Verifiable local execution.
- Audit trail
- No server-side logging of user data. Nothing to audit.
- Self-hosted
- Hosting mackan.eu yourself? Full control over all infrastructure.
Air-gapped & Offline Mode
JSON Toolbox works in completely isolated environments:
Enable offline mode
- Load the page once with internet
- All resources are cached locally
- Disconnect internet - tool still works
For full air-gap
Disable analytics and download for local hosting:
<script>window.ANALYTICS_DISABLED = true;</script>
<!-- Then download /tools/json/ folder for local hosting -->
All features offline
CSV/XML/YAML/CSS conversion | Format/Validate/Repair | Diff/Query/Schema | Transform/Tree/Utilities
Deterministic Developer Utility
JSON Toolbox follows the Deterministic Developer Utility pattern:
- 1. Local execution
- No network calls during operation
- 2. Deterministic output
- Same input always produces same output
- 3. Zero onboarding
- Paste data, click convert
- 4. No side effects
- Nothing installed, nothing persisted without consent
- 5. Keyboard-first
- Full operation via shortcuts (press ?)
This is a tool, not a service.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| ? | Show/hide shortcuts |
| Ctrl+Enter | Run current operation |
| Ctrl+1-9 | Switch to tab 1-9 |
| Ctrl+Tab | Next tab |
| Ctrl+Shift+Tab | Previous tab |
| Ctrl+Shift+C | Copy output |
| Escape | Close modal |
Policies
Dependency Policy
Allowed: Capability libraries (local-only, deterministic, self-hosted)
Self-hosted in /vendor/:
papaparse.min.js— CSV parsing (RFC 4180)js-yaml.min.js— YAML parsing (YAML 1.2)jsonrepair.min.js— Broken JSON repairlucide.min.js— Icon library
Disallowed: Frameworks, build systems, CDN dependencies, external services
Local Execution Policy
- No network calls during tool operation
- No backend or cloud processing
- No telemetry (aggregate analytics only, opt-out)
- All processing in browser JavaScript
Accessibility Policy
- WCAG AA contrast compliance (≥4.5:1)
- Keyboard navigation for all functions
- ARIA labels on interactive elements
- Screen reader compatible
Browser Support
| Browser | Status |
|---|---|
| Chrome 90+ | Full support |
| Firefox 90+ | Full support |
| Safari 14+ | Full support |
| Edge 90+ | Full support |
Technical Details
| Metric | Value |
|---|---|
| Initial load | ~65 KB |
| Full load (all modules) | ~395 KB |
| Languages | Swedish, English |
| Themes | Light, Dark |
Libraries
- PapaParse — CSV parsing
- js-yaml — YAML parsing
- jsonrepair — JSON repair
- Lucide — UI icons
Related Tools
Part of the mackan.eu developer utility suite:
- Password Generator — Cryptographically secure passwords
- Image Converter — Local image format conversion
- Coordinate Converter — GPS coordinate transformation