Every layer of a stack wants its config in a different shape. The app reads JSON, the CI pipeline wants YAML, the Rust tool wants TOML, and half your afternoon goes to translating one into another by hand. The Convert app does it in a keystroke, on your machine — nothing you paste is uploaded.
Say you have this JSON:
{
"service": "web",
"port": 8080,
"replicas": 3,
"env": { "NODE_ENV": "production", "LOG_LEVEL": "info" }
}
Pick JSON in, YAML out, and you get:
service: web
port: 8080
replicas: 3
env:
NODE_ENV: production
LOG_LEVEL: info
That looks trivial, and for this input it is. The value of doing it through a real parser shows up on the inputs that aren't trivial.
The traps a naive convert misses
YAML will reinterpret your data. An unquoted no becomes the boolean false — the famous "Norway problem", where the country code NO turns into false. A version like 1.20 loses its trailing zero as a float. Convert quotes exactly the values that would change meaning and leaves the rest bare, so image: node:22-alpine stays readable but answer: "no" gets its quotes.
TOML needs an object at the top. A JSON array has nowhere to go in TOML, so Convert tells you rather than emitting something a parser will reject. Round-trip a table and it comes back intact:
service = "web"
port = 8080
replicas = 3
[env]
NODE_ENV = "production"
LOG_LEVEL = "info"
Read a config you didn't write
The other direction is just as useful. Paste a gnarly TOML or YAML file, convert it to JSON, and suddenly its shape is obvious — every nesting level laid flat and quoted. It is the fastest way to answer "what does this file actually contain" without running the tool that consumes it.
Convert reads JSON, YAML, CSV, TOML, JSON Lines, .env and query strings, and writes those plus XML. When a conversion loses something — CSV flattening a nested object, .env dropping types — it says so before you commit, so you are never surprised by what came out the other side.