a human-friendly configuration format for PHP, JavaScript and Python
GET STARTED
# mappings and sequences, indented by tabs or spaces
database:
	host: localhost
	port: 3306

roles: [guest, member, admin]   # inline arrays

# entities: a value with attributes
mailer: App\Mailer(@smtp, timeout: 30)

Readable by People

NEON is a configuration format people like to read and write. The structure comes from indentation by tabs or spaces, comments start with #, strings mostly need no quotes and multiline text needs no escaping. And practically any JSON is NEON too. Learn the format.

Entities

A value can carry attributes, like a function call: Column(type: int, nullable: true). That is how the configuration of the Nette DI container describes services, and why it reads so well.

Edit Without Losing a Comment

Change a value, add a key, remove an item, and the rest of the file stays as its author wrote it: comments, blank lines, indentation, the style of each value. The diff is only your change. Editing files.

PHP, JavaScript, Python

Official libraries for PHP, JavaScript and TypeScript and Python follow one specification and pass one conformance corpus, so a file reads the same in each of them.

Checked by neon-lint

One command for editors, CI and AI agents, with the same output and exit codes in every language. An AI agent that runs it after each change fixes a broken file before it goes on.

Since 2011

NEON is the configuration format of every Nette application and of countless phpstan.neon files. The PHP library has been downloaded more than 70 million times.