The improved Neos UI
As announced at Inspiring Conference 2016 and at Neos Conference 2017, the Neos User-Interface was completely rewritten based on ReactJS. This is a solid foundation for the user experience of Neos 3.3 and will also allow us to take the Neos UX to a new level in the future.
While we have focussed on recreating the existing User-Interface, there are important changes under the hood and exciting new features:
- Responsive preview modes, showcasing how the website looks e.g. on mobile.
- New "create node" dialog, with the ability to select insertion positions and enter required field values.
- Faster backend-loading and much faster document switching and initialization.
- We integrated CKEditor providing a stable basis for inline-editing. This brings
- an improved support for copy/pasting content from word or other websites,
- support for keyboard shortcuts for basic editing operations (bold/italic/ and try CTRL-Z to undo your last type commands!),
- the ability to add custom styles and classes to the editor.
The new UI is default for new projects. See the upgrade instructions to learn how to enable it for existing projects.
Watch the talk about the Neos React UI given by Sebastian Kurfürst during Neos Conference 2017. Jump directly to minute 15:39 for the speed comparison.
Under the hood
We use state of the art web-technologies to create the improved Neos editing experience:
- React 16 with Redux and Redux-Saga
- End to end testing with TestCafe
- Unit Testing with Jest
- JS monorepo management with Lerna
- Webpack 3 Build Stack
We have extensively tested the React UI on various real-world projects of all sizes, but as with all huge changes, there might still be bugs we do not know about yet. If you find some, please open an issue in our neos-ui issue tracker!
1&1: Core Feature Sponsor silver
Punkt.de: Core Feature Sponsor bronze
H-Hotels: Core Feature Sponsor bronze
Sitegeist: Core Feature Sponsor bronze
Sandstorm: Core Feature Sponsor bronze
We'd also like to thank our value sponsors Tyll Weiß (2x), vivomedia.de, Kaufmann Digital, webexcess, bit.loft, Sebastian Helzle, web&co, networkteam, Schwabe AG and our individual sponsors contenance, werk4, Peter Rauber, Kathleen Peschke, Jonathan Uhlmann and Lorenz Ulrich for supporting the project.
Changes in Neos
Split Neos.NodeTypes into separate packages
The package Neos.NodeTypes was split up into separate packages to allow a more fine grained control about the NodeTypes that are available for editors.
- Neos.NodeTypes.BaseMixins: Base mixins which are useful across projects.
- Neos.NodeTypes.AssetList: A NodeType to provide a list of downloadable assets.
- Neos.NodeTypes.ColumnLayouts: Various simple column layouts NodeTypes.
- Neos.NodeTypes.ContentReferences: A simple content reference node type.
- Neos.NodeTypes.Form: A simple form node type.
- Neos.NodeTypes.Navigation: A navigation nodeType to create menus or lists of internal links.
- Neos.NodeTypes.Html: A simple html node type.
The package Neos.NodeTypes is now a wrapper for the packages above, so your existing projects will continue to work as before.
Neos now allows to configure the interlace/progressive-mode for generated images. This allows to show images faster to the viewer while data is still transferred for the full resolution. Whenever large hires-images are used this makes a noticable difference for the visitors.
Additionally, the quality for each processed image can now be controlled via Fluid or Fusion. Until now this was controlled by a single global setting, that was used for all image-sizes and resolutions.
Atomic.Fusion - Prototypes
Fusion has become increasingly important over the last years and we are currently seeing more and more projects that use Fusion as the sole rendering layer and completely work without Fluid.
To support such use-cases we added four new Fusion prototypes to the core that were initially developed in the package PackageFactory.AtomicFusion.
- Neos.Fusion:Component: To isolate rendering this prototype passes the given attributes as props to the internal renderer.
- Neos.Fusion:Augmenter: Add classes and attributes to the rendered children.
- Neos.Neos:Editable: Create an inline-editable field for a property in the Neos backend that can be passed to a rendering-component.
- Neos.Neos:ContentComponent: A component that renders a ContentNode. It is augmented with the required metaData for the interaction with the Neos-UI.
With Neos 3.2 we added support for domain specific languages to Fusion. For Neos 3.3 we moved the AFX Fusion-DSL, that was originally developed in PackageFactory.AtomicFusion.Afx, to the Neos-namespace. This package will not be installed by default but can be required via composer with the key neos/fusion-afx if you want to use it.
Changes in Flow
Support for PHP 7.2
Just weeks after the final release of PHP 7.2 Neos and Flow now officially support the latest PHP Version. Actually all Neos 3.x and Flow 4.x Versions will support PHP 7.2 from now on.
The Flow-routing is improved and now allows the definition of RoutingParameters via HTTP-components that can later on be handled by custom RoutePartHandlers. That way the routing can react to influences other than the uri-path, like the requested host-name or scheme or any other computable value.
Seperated Log Package
The log-package was extracted from Flow to become a separate independent composer-package neos/flow-log that can be used outside of Neos or Flow projects. This continues our long-time-effort of extracting parts of our codebase that can be used separately and making them available to the whole php-community.
Documentation and Support
The detailed upgrading process for Neos 3.3 is explained in the upgrade instructions.
Support for Neos 3.3 LTS and Flow 4.3 LTS
Neos 3.3 LTS and Flow 4.3 LTS will get bugfixes until December 2019 and security fixes until December 2020.
This release is the product of a great community! Join the conversation at discuss.neos.io or on Slack and be part of our community and help us build the next release of Neos. If you are considering Neos for your organization, but have some unanswered questions, please feel free to get in touch with the Neos Team. We would be happy to help you get started on your Neos journey!
And if Neos helps you with your business, how about supporting the Neos Team financially, so we can meet in person and work on the next releases?
Neos Conference 2018
From April 13th to April 14th 2018 - the Neos Community gathers at the Neos Conference in Hamburg, Germany. Join us to meet the "who-is-who" of the international Neos community: team members, agencies and organizations, developers and maybe future colleagues.