tools / data
Data tools.
Convert between JSON, YAML, XML, TOML, CSV and TSV. Format, minify, validate, or generate TypeScript types — all running locally in your browser.
Convert between JSON, YAML, XML, TOML, CSV and TSV. Input format is auto-detected from drop or paste.
Input
empty
Output
empty
How it works
- 01 Pick a mode. Four operations: Convert, Format / Minify, Validate, TS Types.
- 02 Paste or drop a file. The input format is detected from the file extension. You can override it from the dropdown if detection guesses wrong.
- 03 Copy or download. Output appears below — copy to clipboard, or download as a properly-named file with the right MIME type.
FAQ
- Does my data get uploaded anywhere?
- No. All parsing and serialization happens in your browser using small open-source libraries (papaparse, js-yaml, fast-xml-parser, smol-toml). Open the network tab while you convert — you won't see a single byte of your data leave the device.
- Which formats are supported?
- JSON, YAML, XML, TOML, CSV and TSV — in both directions. XLSX (Excel) is deferred to a future release because the smallest viable in-browser library is 600KB+ and most XLSX-to-CSV needs are well served by Numbers, LibreOffice, or Excel's own Save As.
- How accurate are the inferred TypeScript types?
- The type generator walks your sample and infers structural types — primitives, arrays of T, nested interfaces, and unions including null. It handles the 95% case (REST API responses, config files) well, but it can't know about your discriminators or optional-only fields that don't appear in the sample. Paste a representative example with all the variants and edge cases for best results.
- Why does TOML conversion sometimes fail?
- TOML requires a table (object) at the top level — it has no concept of a top-level array. If your source is an array of records, convert via JSON first (your records become an array under a root key) or use CSV / JSON Lines instead.
- Does CSV preserve numeric types?
- Yes. The parser uses dynamic typing — values that look like numbers, booleans, or null are converted automatically. If you need to preserve everything as a string (e.g. zip codes with leading zeros), quote them in the source CSV and they'll stay as strings.
- Does it work offline?
- Yes, after the page has loaded once. Each format library is small and lazy-loaded only when you actually use it — so the first conversion you run downloads ~50KB, and subsequent ones in the same format are instant.