Technology1 min read

SOML – A Config Format for Humans

By · Published by Everything Blog

In short

Sindre's Objectively Marvelous Language streamlines configuration files by allowing unquoted keys, full comment support, and native types for dates, instants, and durations. A fundamental design choice requires all strings to be quoted, preventing values from being mistakenly converted into numbers or keywords. File indentation does not dictate data hierarchy except inside block strings, reducing accidental formatting errors. To ensure reliability, the specification includes a one-pass grammar alongside an extensive conformance test suite.

Key points

  • Values derive their data types entirely from syntax rather than content inspection to pre…: Values derive their data types entirely from syntax rather than content inspection to prevent accidental type coercion.
  • Indentation does not alter the structural hierarchy of data outside of defined block stri…: Indentation does not alter the structural hierarchy of data outside of defined block strings.
  • Implementation consistency across programming languages is verified using a conformance s…: Implementation consistency across programming languages is verified using a conformance suite containing nearly 1,000 test cases.

Sources checked by our analysis pipeline: 1

A config format for humans

SOML is short for Sindre's Objectively Marvelous Language.

SOML is a config format that is pleasant to write and easy to read. The top level needs no braces, keys need no quotes, line breaks replace commas, and comments go almost anywhere. A value's type comes from its syntax, never from its content, so what you see is what you get: '123'

is a string and 123

is an int. Dates like 2026-09-19

, instants like 2026-09-19T14:00:00Z

, and durations like 30s

are real values, so nobody has to guess the unit of timeout: 30

. Paths and regexes need no escaping, and prose goes in block strings. One canonical form and a shared conformance suite mean every implementation reads your file the same way. JSON has the strictness but not the comfort: quotes, commas, and braces everywhere, and no comments. YAML has the comfort but not the clarity: -

list markers, nested indentation, and types guessed from content, so country: no

becomes false

and version: 3.10

becomes 3.1

. SOML gives you the comfort and…

Technology