TOML
Parse, validate, and convert TOML to JSON in your browser.
{
"title": "renderhub",
"owner": {
"name": "Alice",
"role": "engineer"
},
"server": {
"host": "127.0.0.1",
"port": 3000
},
"tools": [
{
"slug": "html",
"category": "preview"
},
{
"slug": "markdown",
"category": "preview"
}
]
}Tips
- Parses TOML v1.0.0 via
@iarna/toml. - Errors include the offending line and column.
- Download JSON saves the parsed config as
.json.
Why TOML?
TOML is a configuration format designed for one job: being read and written by hand. Compared to YAML it has a stricter, smaller grammar — there is one way to express a string, one way to express a table, and the type of every value is unambiguous. Compared to JSON it adds comments, native dates, and a syntax for nested tables that does not require deep indentation. If you have used Rust's Cargo.toml, Python's pyproject.toml, or Hugo's site config, you have used TOML.
Common patterns
- Tables are sections introduced by
[name]headers. Everything under a header belongs to that table until the next header. - Nested tables use dotted keys, e.g.
[server.database]. - Arrays of tables use double brackets
[[ ]]— useful for a list of similar records like dependencies or scheduled jobs. - Dates and times are first-class.
2026-05-18T09:00:00Zparses as a real datetime, not a string.
TOML vs YAML vs JSON
Use TOML when a human is the primary editor and the structure is mostly flat with a few sections — application config, build manifests, plugin settings. Use YAML for deeply nested documents where indentation actually helps readability. Use JSON for data on the wire. This tool converts TOML to JSON in one click, which is the easiest way to feed a TOML config to a system that only speaks JSON.