What TOML shapes are supported?+
The common tabular shapes: a sequence of [[table]] array-of-tables blocks (one row each), a single [table] (one row), and a top-level key holding an array of inline tables (e.g. rows = [ { a = 1 }, { a = 2 } ]). Keys are unioned across blocks to build the header.
How are types and quoting handled?+
Strings use TOML escaping — basic ".." with \n, \t, \", \\, \uXXXX, literal '..' with no escaping, and triple-quoted multiline strings. Integers and floats keep their value (underscores like 1_000 are stripped), booleans stay true/false, and dates/datetimes are passed through verbatim.
What happens to nested arrays or inline tables inside a row?+
Arrays are serialized compactly (e.g. ["new","sale"]) and inline tables are flattened to key=value; key=value text within a single cell, so every block stays one flat CSV row.
Does the CSV escape commas, quotes, and newlines correctly?+
Yes. Output follows RFC 4180 — any field containing a comma, double-quote, or newline is wrapped in double-quotes with internal quotes doubled, so the CSV opens cleanly in Excel, Sheets, or any parser.
Is my data uploaded anywhere?+
No. The entire conversion runs client-side in your browser using plain JavaScript. Your TOML never leaves your device — you can confirm this in your browser's Network tab.