What is it?
The Content Repository (CR) stores your content. Imagine a table of contents. Every section is identified by a unique path. The CR works the same. Everything you see in the navigation tree in Neos is a node. You can nest them indefinitely. If you can think of it as a tree, you can build it with Neos.
We use nodes to structure content and save it to the CR. Everything you add into Neos is a node. A page is a node. A heading is a node. A two-column layout is a node. Those nodes can be nested just like headings in a table of contents. Nodes have a NodeType, and various properties depending on its NodeType.
Why do we have it?
We're fond on having reusable content. The only known way is to separate the actual content (e.g. text) from visual aspects (e.g. styling or even HTML). Neos is built around this idea. The Content Repository is the heart of Neos. It stores the content and makes it available to Fusion (which is the rendering layer).
Using Fusion, you can style and format your content as you wish. Different output formats like HTML and JSON are possible at the same time. Removing HTML and Inline-CSS from content is way harder than adding it later on.
With Neos you rarely need any plugins. You can build a calendar, blog or a wine catalogue without one line of PHP. Those features use the CR. Getting the three latest blog posts on your homepage is easy. Showing the next event in your app is easy.
The CR is the Core of Neos.
The content repository is the conceptual core of Neos. The content in Neos is not stored inside tables of a relational database, but inside a tree-based structure: the so-called Neos Content Repository. It can store arbitrary content by managing so called nodes that can have custom properties and child nodes.
Easily configurable mapping of the 'Content Model'
To implement a content model, the developer doesn't have to deal with classical database migrations.
Instead, a model can be implemented using YAML configuration in the NodeTypes.yaml file.
Create your NodeTypes that fit your needs
Content elements are easily configurable and extensible, so that plugins are rarely necessary anymore. The 'simple' configuration of own content elements is sufficient.
Modelling abstraction layer to the database
To a certain extent, the CR is comparable to files in a file-system: They are also structured as a tree, and are identified uniquely by the complete path towards the file.
Internally, the Neos ContentRepository (=CR) currently stores the nodes inside database tables as well, but you do not need to worry about that as you’ll never deal with the database directly. This high-level abstraction helps to decouple the data modelling layer from the data persistence layer.