Sulu CMS: A Developer’s Perspective
“What’s the best CMS around?” Ask this question in a room full of PHP developers, and you will likely hear a mix of answers. If you’re looking for a developer-friendly CMS, here’s why the only answer to that question is “Sulu.”
Sulu CMS is built on two established foundations in the CMS world: PHP and Symfony. Sulu is modular and extensible. If you know Symfony, you know how to develop for Sulu.
Sulu CMS for Beginners
Mastering a new CMS often means learning an unknown, custom architecture with its own rules for integrating or extending the system. Sulu is different. Sulu is built from the ground up to be easy to configure, modify, and extend. The knowledge you need to work with Sulu revolves around standard languages and frameworks:
- PHP and Symfony for backend development
- HTML/CSS/Javascript and Twig templating for frontend development
- JSON, YAML, and XML for configuration
In short, onboarding developers to Sulu CMS is straightforward, which is beneficial for tech teams looking to maintain a system for years to come.
Sulu CMS and Symfony
The Symfony framework emphasizes modularity and reusability. Symfony encourages the use of bundles for developing reusable functionality. Sulu is built as a set of bundles. This way, Sulu reuses existing Symfony solutions while at the same time making it straightforward for Symfony developers to modify and extend the CMS.
Sulu benefits considerably from Symfony’s large and active developer community that abounds with knowledge and helpfulness.
Developers love to have a clean architecture that is easy to integrate with other systems, and Sulu delivers. This is partly due to the use of Symfony bundles that are standardized and modular entities, and partly because the Sulu architects turned that advantage into a well-thought-out architectural design.
Sulu’s deep connection to Symfony is a huge advantage for developers, as the rest of the article will show.
How does Sulu CMS compare with Other CMS Platforms?
Choosing a CMS is no trivial task. Sulu has several characteristics that make it stand out from the rest:
- It uses standard components
- It is truly decoupled
- Its modularity ensures scalability
To start with, building extensions for Sulu requires little specialized knowledge. You’ll find standard components and concepts at every level, from PHP and Symfony for the backend, to Twig templating for the frontend, and XML and JSON for configuration.
Another advantage is the clear separation between backend and frontend. It’s no exaggeration to say that Sulu is a headless CMS with an independent frontend. A Sulu backend developer only needs to build functionality with PHP and Symfony and expose an API, without having to deal with frontend development details. Frontend developers, on the other hand, can write an interactive UI on top of a clean API. Separation of concerns starts here.
Being a developer-centric CMS, Sulu is clearly an advantage for building complex content management systems. Sulu’s modularity and openness to programmatic extensions allow for easy scaling. However, Sulu is not a one-size-fits-all solution for every project. It requires up-front development effort to get a basic site set up and running. Other CMSs might be a better choice for simple sites with modest needs and no plans to scale.
Sulu CMS' Features and Customization Possibilities
Customizing Sulu means employing standard tools and techniques that are well-established among seasoned PHP/Symfony developers. Sulu needs no specialized tools, as the typical Sulu development process is 99% standard PHP/Symfony development. Sulu’s core Symfony bundles are customizable and extensible through standard extension points.
As an example, one way of extending Sulu’s admin UI with custom functionality is to re-use or extend Sulu’s entities, write the business logic on top of them in Symfony, and wire up the entities to the Sulu Admin frontend. These are standard extension techniques described in the Symfony documentation.
Testing, Debugging, and Tools Integration
The development process for Sulu is almost pure PHP/Symfony, and the same applies to testing and debugging. Sulu works well together with all standard Symfony or PHP testing tools and debuggers.
When all development and testing is done, Sulu can be deployed through common PHP/Symfony deployment processes using Composer, Git, and PHP Deployer or other deploy scripts or tools. Symfony developers will feel immediately at home.
The Sulu CMS Community
Never commit to using an open-source software product without first looking at its community. Sulu’s tight-knit community is smaller than those of other established CMSs, which allows for truly meaningful interactions and valuable knowledge exchange.
The core community around Sulu is intimate, active, and welcoming. As Sulu developer Oliver Kossin likes to say, “Our community is small but beautiful.”
Because Sulu builds on existing standards, they are naturally part of the broader ecosystem of the PHP/Symfony community. Beyond the core community of Sulu developers, you can leverage the hivemind of the PHP and Symfony developer community for help and answers to your questions.
Future Outlook of Sulu CMS
Sulu has enjoyed steady growth so far, and the trend continues. Development is stable with no surprises — a quality that speaks to its sustainability. Like many successful long-term FOSS projects, Sulu is backed by a company, Sulu GmbH. Corporate support provides consistent funding and direction, while at the same time, Sulu benefits from an engaged open-source community. Together, the company's backing and community involvement are a true superpower for Sulu.
Sulu’s growth strategy focuses on gradually extending its features and staying clear of the path of hyper-growth and the resulting feature bloat. Sulu CMS aims to evolve steadily to meet emerging needs while retaining its core strength: To be a lean CMS with flexible extension options.
In the crowded content management space, Sulu stands out by being the only CMS that is a native Symfony application. Together with the Symfony framework, Sulu remains a reliable and trustable platform worth investing in.
With stable funding and development, engaged users, and a focus on incremental improvement, Sulu's future remains bright.
Tips for Developers New to Sulu CMS
We asked Oliver Kossin, Symfony developer at QOSSMIC, to share tips for developers new to Sulu. His advice is, “Just try it out! Check out a demo or sample repo, and play around with it. With so much standard Symfony inside, you’ll get up to speed in no time”.
Sulu: The Developer-Friendly and Versatile CMS Solution
You’ll search far and wide to find a CMS as developer-friendly as Sulu, with as comfortable a learning curve. Basic knowledge of MVC and other common concepts, along with standard PHP and Symfony knowledge, is all you need to start building your dream CMS with Sulu.
What is Sulu’s secret? It doesn’t try to reinvent the wheel. Sulu integrates with the Symfony ecosystem so well that it can benefit from existing Symfony solutions and the large Symfony community, rather than having to build up its own, specialized solution ecosystem.
Sulu’s clear architecture, based on the Symfony bundle architecture and a strict separation of backend and frontend, lowers the entry barrier even further. Take a Symfony developer and a React developer, and you’ve got a Sulu dev team (even if it’s a talented team of one).
Speaking of backend/frontend separation, if you need a headless, API-first CMS, or a hybrid approach, Sulu has everything you need.
In addition to developer-friendliness, Sulu does not fall short on the user experience side. With support for multiple sites, portals and languages, content versioning, role-based permissions, and more, Sulu is a capable CMS for a vast range of use cases.
To learn more about Sulu, browse through the documentation, read our case studies, or go through the self-paced Sulu workshop.
Or get in touch with us, we’re happy to help.