YAML

YAML, a recursive acronym for “YAML Ain’t Markup Language,” is a data serialization format designed to be easy for humans to read and write. The official site at yaml.org describes it as “a human-friendly, cross language, Unicode based data serialization language designed around the common native data structures of agile programming languages.” Rather than relying on braces, brackets, and quotation marks the way many formats do, YAML uses significant whitespace, with indentation expressing structure and nesting.

The format was created by Clark Evans, Oren Ben-Kiki, and Ingy dot Net, with the first drafts appearing in 2001. The yaml.org specification page documents the evolution from the early 2001 through 2003 working drafts to YAML 1.0 (final draft January 2004), YAML 1.1 (final draft December 2004), and the current YAML 1.2 specification. Along the way the designers deliberately aligned YAML so that JSON became, in practice, a subset of YAML, allowing YAML parsers to consume JSON documents.

The core data model rests on three node kinds: scalars (strings, numbers, booleans, and null), sequences (ordered lists, written with leading dashes), and mappings (key/value pairs, written as “key: value”). The specification also defines features that go beyond simpler formats, including anchors and aliases for reusing nodes, explicit type tags, multi-document streams separated by ”---”, and block versus flow styles. This expressiveness is part of YAML’s appeal but also a source of its complexity.

According to the specification, YAML’s intended uses range “from configuration files to Internet messaging to object persistence to data auditing.” In modern practice its dominant role is configuration. Kubernetes manifests, GitHub Actions and GitLab CI pipelines, Ansible playbooks, and countless application config files are written in YAML, where the lack of visual punctuation makes hand-editing comfortable.

YAML’s flexibility has a darker side that practitioners learn quickly. Indentation must use spaces rather than tabs, a single misaligned space can silently change meaning, and implicit typing has produced famous surprises, such as the unquoted token “no” being read as the boolean false (the so-called Norway problem, since the country code NO was affected). These edge cases led later specification work and tooling to encourage explicit quoting and stricter parsers.

YAML occupies a middle ground among configuration formats: more human-friendly than XML, more expressive and comment-friendly than JSON, and more capable of deep nesting than the flatter INI or TOML formats. Its ubiquity in cloud-native and DevOps tooling has made fluency in YAML a practical requirement for modern infrastructure work.

Sources

Last verified June 8, 2026