One of the biggest new features in this release is a flexible and speedy content caching solution. One of the biggest features we are preparing for future releases is content localization, internationalization, and translation. In preparation for that multi-lingual support, we have included a technical feature in this release, that you may have heard of, called “Content Dimensions”. Note, however, that content dimensions are considered experimental and will not be enabled until we have full support for translation in the UI. Including this feature now should not reduce performance or stability. After all, performance and stability is the focus of this release.
Performance and stability improvements
Neos 1.1 is a big performance improvement over version 1.0 without requiring any special configuration to benefit from the improvements. This is so important to us, that we dedicated one of our code sprints to profiling and identifying the major performance issues, so we could find and optimize the parts of Neos that caused the most problems. The improvements have made pages not only load faster, but they’ve also made the overall editing experience feel more robust.
Since the release of version 1.0 in December we got a lot of feedback from our amazing users and we have gathered experience with several projects. This has helped us to create numerous improvements and fixes which are included in this release. See the release notes for further details.
The content cache is a powerful solution to improve the page rendering time of a Neos site. A completely new caching concept was created to provide a configurable, hierarchical and flexible content caching solution. Instead of caching each page as a cache entry, this splits the page’s rendered output into several segments which can be cached independently. For example, if you are editing a specific content block on an page, the content cache will only remove the parts that have changed instead of removing the cache entry for the whole page. Since a lot of segments are reused across several pages, this allows us to avoid unnecessary rendering of the content that has not changed.
The content cache is based on the TYPO3 Flow caching framework which provides several cache backend implementations for further scaling.
And finally, our preparation for multi-lingual support in a later version has attracted quite a bit of attention for this release. Content Dimensions is the new big feature that we’re excited to introduce, however this only provides a technical basis for localization in a later release. Content Dimensions are still experimental and will not be enabled by default until more of the components of localization, internationalization and translation are ready to go in Neos.
Basically, the idea of content dimensions is, once configured, you should be able to create different variants for content. In case of localization the variants would be a translation for different languages.
Many multilingual projects face the problem that translations are not totally independent. For example, some projects need to have specialized content for different countries but in the same language. Usually having a country specific part on one page would require duplicating all of the content for every combination of language+country. To solve that problem, Content Dimensions make it possible to define fallback orders between the different language and country combinations.
Even though Content Dimensions is a huge part of making multi-lingual projects work well, it solves more than just these translation problems. It is also possible to create custom content dimensions to specialized content for target website user groups, various devices, or multiple output channels. While this feature is experimental, and, as such, it is not enabled by default in this release, we are very enthusiastic about the amazing things we will all be able to do with Content Dimensions, as soon as they are ready. We expect it to be fully usable in the next version, including the user interface parts.
Share Your Talent
Are you a skilled designer, developer, editor, manager, communicator or have an unusual talent which is missing in our team?
We'll gladly help you to get started and become a contributor by mentoring and sharing our experiences with you.
To get started, start playing with Neos and Flow, then come talk with us via our mailing list or IRC channel. For more hints on how to start contributing to the project, check out our contribution page, contact us (neos at typo3 dot org) or our community contact Christian Müller (christian.mueller at typo3 dot org).