Easy Updates - High Extensibility 

Stay up to date 

The Neos Core Team wants to enable you to make updates to the latest version whenever possible. By design everything is meant to be easy to update. 
Our roadmap and release process even suggests that you do not have to stay with the current LTS (Long Term Support Version), but enables you to update to the upcoming releases - they are all supported as long as the current LTS is.
 

Extend to your needs

Neos offers plenty of ways to be customized. Wherever possible you can find any kind of extensibility, whether to add plugins and functionality, to build indivudual content types or even your own components for our highly flexible React User Interface. 
We also took care of unplanned extensibility in many places - and just in case you cannot find a proper answer, there are many ways to get support.  


Updating Neos

Composer based 

Neos has been relying on composer from its earliest versions. Therefore all updates are managed by composer and it will tell you of course if you need to update any other dependencies. If you have to do other things for an update, please refer to the Neos upgrade instructions.
 

Database Migrations

Built upon Doctrine, Neos makes use of doctrine's database migrations. So whenever your schema changes, you can easily create a new migration and thus take absolute control over your database structure that is coherent with your deployed code version at any time.

Node Migrations

The biggest hazzles in updates may occur if your content structure changed. Imagine you had to change element names (which are referenced in the database) because you had a bad typo.
Node Migrations take care of this issue and let you keep track of changes in content structure.

Code Migrations

If we change something that you might rely on (e.g. namespaces), we will provide you with code migrations and respective update instructions, so that you do not have to manually change all of your depending classes (which is highly error-prone).

Extending Neos
 

NodeTypes

The easiest and most common way to extend Neos is right built in its main use case: Content. Neos is a world-champion in individualized content. Neos stores its content in a node-based content repository. Every node has a type and in order to add a new type, you need only a few lines of yaml config.

Code

Neos is based on Flow, a powerful PHP Framework. It offers high-end features like DI, AOP and DDD. Writing your own plugin for Neos is easy as a breeze, even though you can do a lot of things without even touching PHP:
Neos ships with its own powerful DSL, "Fusion" - which enables you to quickly write loosely coupled components.

User Interface

Last but not least you might have heard that the Neos User Interface is completely written in ReactJS and uses CkEditor. If you are a React developer, you can add components, trees and functionality. And if not - you could become addicted to React and our UI!

Community Packages

As Neos is composer based, packages are widespread and publicly available - community as well as core packages.
We do list all Neos packages so that you can easily use and install them. If you have an extension of your own that you want to appear on the list, you only have to add it to packagist.org.