About
About NuvTool
73 tools for the format wrangling that fills a developer's day, converting, formatting, validating and inspecting the data you already have. All of it runs locally in your browser.
Why this exists
There is no shortage of online converters. The problem with most of them is that they post your data to a server, wrap the result in advertising, and tell you nothing about what the conversion actually did to your data.
That last part matters more than it sounds. Converting XML to JSON has to decide what to do with attributes. Converting CSV to JSON has to decide whether 007 is a number. Converting HTML to Markdown quietly discards anything Markdown cannot express. A tool that performs those conversions without telling you is handing back data that looks right and is subtly wrong.
So each tool here documents its own edge cases: what it preserves, what it cannot, and where a conversion is lossy. The limitations section on every page is deliberately honest rather than promotional.
How it works
Every tool is a data definition plus a processing function, running through one shared engine. That is why the interface is identical everywhere (the same keyboard shortcuts, the same file handling, the same error display), and why a fix to error reporting improves every tool at once rather than one of them.
Processing happens inside a Web Worker, on a separate thread from the interface. A large file or an awkward input cannot freeze the page, and a job that runs too long can be stopped.
Parsers load on demand. Opening the JSON to YAML converter downloads the JSON and YAML code and nothing else, not the SQL formatter, not the XML parser.
Errors are meant to be actionable. When a parser provides a location, the tool reports the line and column and shows a source excerpt. Where possible, it also explains what was expected; some errors do not include a location. “Something went wrong” is not an error message.
Correctness
The automated test suite runs the examples declared for each tool. Deterministic results are compared with the documented output. Random generators are checked for non-empty output, and timestamp examples are checked against the documented lines rather than time-dependent wording. These checks help catch documentation drift; they do not guarantee that every edge case is covered.
Alongside those, the suite covers ordinary inputs, awkward real-world ones (quoted commas in CSV, CRLF line endings, YAML anchors, XML namespaces and mixed content), and deliberately malicious ones: script payloads, prototype pollution attempts, XML entity expansion and catastrophic regular expressions.
Where a tool cannot do something, the page says so rather than failing quietly. That is the most useful thing a utility can tell you.