Sulu

Sulu is a relatively young CMS, based on very modern technologies such as the PHP framework Symfony and the JavaScript framework React. Sulu uses many of Symfony’s well-known development methods, making on-boarding very easy for developers with respective experience.

Last information update
May 2020

Characteristics

Programming language

PHP

Initial release
Open source as of
License

MIT

Current major release
2
Available languages
8
Core developers
~7
Developers
>100
Registered community members
>900

Websites are a common use case for the system, but it is also an excellent environment for building web-applications. As Sulu is published through the very open MIT licence, it can even be integrated in proprietary solutions.

Focused on complex websites

Sulu has a strength in building large website projects. The core concept is “multi everything”, meaning that any number of language iterations, portals, and output channels can be created using just the system’s basic functionalities. Searching and installing large numbers of – often incompatible – plugins is not necessary.

Companies acting in international markets want to publish their web content in different countries and localized languages. Sulu has been created to support multi-language content from the beginning. This is not only visible in the optimized UI, but also in the high system performance regardless of the number of language iterations.

Creating different country versions using the same language is also possible thanks to the well-designed localisation functionalities. They enable editors to publish specific content for e. g. USA, Britain, and Australia, although all these areas share the English language.

Large web environments often use multiple domains or portals with dedicated content, all of which can also be implemented using the Sulu core functionalities. Any number of portals can be created and administered using individual language settings and designs. A central content tree for each portal helps to keep the content editing process as simple as possible.

Multi-channel and headless CMS

The content elements of a page are stored as structured data. A developer can use a large set of so-called content-types to define the semantics of a template. While at first this approach seems a little time-consuming, it offers many advantages in the long run. E.g. as no design information is stored in the database it is relatively easy to create a completely separate layout for the mobile version of a website. Another use-case is to deliver content not only in HTML but also in JSON or XML. It is even possible to use Sulu as a „headless“ CMS (only as an independent content provider) without restrictions.

A framework for application development

Thanks to its extensibility and full-stack Symfony support, developing custom-made applications is highly efficient with Sulu.

Custom lists and forms can be integrated into the admin UI by defining meta-information in XML. If you cannot find a pre-configured form field with the required functionalities, creating your own is straight-forward, using JavaScript and a registration process. A fully customised UI can also be developed as the system gives a lot of freedom in the implementation of front-end experiences.

This approach makes Sulu the perfect foundation for your system since it’s able to contain its own business logic and can be used to initiate other custom-made processes. End users will find this concept appealing as they do not have to use multiple systems to accomplish the same tasks. The management of content pages and business functionalities feel more or less the same. Many functions can be re-used and scaled, e. g. User management or the comprehensive APIs. This development approach can use a project budget more efficiently or save costs.

Integrations with other systems

Sulu offers many pre-built integrations with marketing tools such as Google Analytics, Google Tag Manager or Matomo. Integrating the system even deeper into an existing technology stack can be done by using one of the many available Symfony modules. This makes features such as a login via LDAP or SAML very simple to implement.

Another popular integration is Sylius, an e-commerce platform based on similar technologies. A typical use case is synchronising products from Sylius and leveraging Sulu’s CMS functions to optimise the content for a website. In this scenario, Sylius still takes care of the shopping basket and the checkout process. Similar solutions, using ERP systems such as SAP or Dynamics, have been implemented using this approach.

It’s not a tool for everything

Sulu includes a relatively large set of built-in functionalities, making it less suitable for smaller websites or simple blogs. Efficient development also requires a certain amount of Symfony experience, such as managing the installation process. Unlike many other CMS that offer a web installer, Sulu uses the PHP package manager Composer.

Creating design templates for the system often takes more effort than with other systems, because an ecosystem of pre-built and downloadable templates does not exist. If such a template is used, manual integration is required.

High quality approach

Sulu is highly respected in the Symfony community, thanks to the proximity to this framework. Adoption is increasing rapidly in recent years. Regular system updates, new features, and the major release 2.0 in 2019 demonstrate the team’s commitment to high quality.

An active developer community can be found on a dedicated (and free) Slack channel where even core contributors can be found and are happy to help wherever they can.

Since 2018 the Sulu GmbH takes care of future system developments and community support. Additionally, trainings, consulting and customised modules are being offered. A partner program has been released in 2019.

Credits

Further authors

Daniel Rotter

Upcoming dates