This article first appeared on Symfony Station.
Technically the CMSs in this article aren't of Symfony but built with its components to various extents. Some of them have the capability to incorporate Symfony Bundles. For example, it's likely with eZ Platform/Ibexa, Sulu, Bolt, Contao, Fork, and Kunstmaan. Most are customizable.
Our exploration is for those developers or site owners evaluating CMSs. However, it will be particularly handy for those searching for one tightly tied to the Symfony framework. I recommend bookmarking this article as a reference while you hunt for the CMS for your project.
If you're unsure how to evaluate a CMS, you can benefit from reading this case study of what we did when building Symfony Station. It's interesting, to say the least.
This article is not as entertaining, but it should prove helpful.
What will be covered
Each CMS overview will provide:
A description from Symfony of the CMS
A list of Symfony Components the CMS uses
A few points from the CMS about its advantages
A link to the CMS's site for more information
The list of Content Management Systems built with Symfony is extensive:
Drupal
Joomla
eZ Platform
Grav
Symfony CMF
TYPO3
Sulu
Bolt
Pagekit
Fork CMS
Kunstmaan Bundles CMS
Zikula
Concrete 5
Roadiz
Contao
Init CMS
Pico
Wow. That's a lot, so I will continually update this article with more details as I cover the CMSs. Or I may write individual articles in the future. For now, I will provide a quick summary of each CMS as described by Symfony and the Content Management Systems themselves. This info will be in quotation marks.
Drupal
Let's start with Drupal which is the CMS Symfony Station is built upon.
"Drupal is an open-source content management platform powering millions of websites and applications. It's built, used, and supported by an active and diverse community of people around the world. Drupal is open-source software maintained and developed by a community of 1,000,000+ users and developers. It's distributed under the terms of the GNU General Public License (or "GPL"), which means anyone is free to download it and share it with others."
Symfony components used in it include:
ClassLoader
Console
DependencyInjection
EventDispatcher
HttpFoundation
HttpKernel
Polyfill Iconv
Process
Routing
Serializer
Translation
Validator
Yaml
It also incorporates Twig in its core.
As Drupal is the most well-known of the "Symfony CMSs" I won't go into it a great deal. Our about page has details of how we use it.
The official site of Drupal
https://www.drupal.org/.
Joomla
Joomla is the second most known "Symfony CMS".
"Joomla is an award-winning content management system (CMS), which enables you to build Web sites and powerful online applications. Many aspects, including its ease-of-use and extensibility, have made Joomla the most popular Web site software available. Best of all, Joomla is an open-source solution that is freely available to everyone."
The Symfony components it uses are:
Asset
Cache
Console
ErrorHandler
HttpFoundation
Ldap
OptionsResolver
PHPUnit Bridge
Polyfill PHP 5.5
Polyfill PHP 7.0
Polyfill PHP 7.2
Polyfill PHP 7.3
Polyfill Util
Process
WebLink
Yaml
I am going to quote from Joomla now: "Joomla! is used all over the world to power millions of websites of all shapes and sizes.
Discover examples of companies using Joomla! in the official Joomla! Showcase Directory.
Some companies and organizations have requirements that go beyond what is available in the Joomla! Core package. In those cases, Joomla's powerful application framework makes it easy for developers to create sophisticated add-ons that extend the power of Joomla into virtually unlimited directions.
The core Joomla! Framework enables developers to quickly and easily build:
Inventory control systems
Data reporting tools
Application bridges
Custom product catalogs
Integrated e-commerce systems
Complex business directories
Reservation systems
Communication tools
Since Joomla! is based on PHP and MySQL, you're building powerful applications on an open platform anyone can use, share, and support."
The official site of Joomla
https://www.joomla.org/
eZ Platform/Ibexa
"eZ Platform, a pure full stack Symfony CMS as of version 2, is the foundation for eZ Platform Enterprise. It is a Content Management System built for business-critical digital applications that need to be extensively quality-assured, stable, and fully-featured with additional value-added functionalities, support, and maintenance services."
Components used by this CMS include:
Asset
Cache
Console
Dotenv
ExpressionLanguage
Form
Polyfill Ctype
Polyfill Iconv
Polyfill PHP 5.6
Polyfill PHP 7.0
Polyfill PHP 7.1
Process
Translation
Validator
WebLink
Yaml
Ibexa says: "Ibexa DXP enables developers to design and develop websites, web applications and complex eCommerce stores. Built on the standard Symfony PHP framework, developers can leverage existing knowledge and integrating custom functionality alongside core features.
At the core of Ibexa DXP is extensibility and connectivity. We provide a comprehensive suite of APIs (GraphQL, REST and PHP) and our products are built on modern Open Source technologies.
Our core technology, Ibexa Open Source is available under the GPL."
The official site of eZ Platform/Ibexa
https://developers.ibexa.co/
Grav
Grav aims for a simple developer experience and has the best logo of the Symfony CMSs. ;) I considered Grav for Symfony Station but did not want it to be a static site.
"Grav is a Modern, Fast, Simple and Flexible flat-file CMS. While Grav is intentionally minimal, the extensive plugin architecture allows it to be adapt to almost any task. Powerful Twig templating ensures that development is only limited by your imagination. Sophisticated caching mechanisms mean that Grav is scary fast and can scale more than other flat-file CMS systems. Utilizing Markdown for content creation and YAML for configuration ensures it is always easy to use and configure. Being flat-file based, means a Grav site is quick to install, simple to migrate, and a breeze to version."
It uses these Symfony Components
Console
Contracts
EventDispatcher
Finder
HttpClient
Polyfill Iconv
Polyfill Mbstring
Polyfill PHP 7.2
Polyfill PHP 7.3
Polyfill PHP 7.4
Polyfill PHP 8.0
Polyfill PHP 8.1
Process
VarDumper
Yaml
Grav says: "Grav is a Fast, Simple, and Flexible file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are already up and running. Although Grav follows principles similar to other flat-file CMS platforms, it has a different design philosophy than most.
The underlying architecture of Grav is built using well established and best-in-class technologies. This is to ensure that Grav is simple to use and easy to extend. Some of these key technologies include:
Twig Templating: for powerful control of the user interface
Markdown: for easy content creation
YAML: for simple configuration
Parsedown: for fast Markdown and Markdown Extra support
Doctrine Cache: for performance
Pimple Dependency Injection Container: for extensibility and maintainability
Symfony Event Dispatcher: for plugin event handling
Symfony Console: for CLI interface
Gregwar Image Library: for dynamic image manipulation
It focuses primarily on your content and turns your content structure into a navigable site. The underpinnings of Grav are simple, yet via extensive events, you have complete control over every step in the Grav workflow."
The official site of Grav
https://getgrav.org/.
Symfony CMF
This is obviously pure Symfony. I considered it for Symfony Station, but I am not proficient enough at Symfony at the moment. Plus, it is no longer supported.
"The Symfony CMF project makes it easier for developers to add CMS functionality to applications built with the Symfony PHP framework. Key development principles for the provided set of bundles are scalability, usability, documentation and testing."
Components used by this project include:
Asset
BrowserKit
Cache
Config
Console
Contracts
CssSelector
DependencyInjection
DomCrawler
Dotenv
ErrorHandler
EventDispatcher
ExpressionLanguage
Filesystem
Finder
Form
HttpClient
HttpFoundation
HttpKernel
Intl
Ldap
Lock
Mailer
Messenger
Mime
Notifier
OptionsResolver
PasswordHasher
PHPUnit Bridge
Polyfill Ctype
Polyfill Intl Grapheme
Polyfill Intl ICU
Polyfill Intl IDN
Polyfill Intl Normalizer
Polyfill Mbstring
Polyfill PHP 8.1
Polyfill UUID
Process
PropertyAccess
PropertyInfo
RateLimiter
Routing
Runtime
Guard
Semaphore
Serializer
Stopwatch
String
Templating
Translation
Uid
Validator
VarDumper
VarExporter
WebLink
Workflow
Yaml
The GitHub repository states: "Nowadays only providing the CMF routing. The repositories of the other components are archived and marked as abandoned but will stay available."
If you're still interested you can find out more about Symfony CMF at https://github.com/symfony-cmf.
TYPO 3
I don't know much about this CMS, although I did explore and consider it for Symfony Station.
"TYPO3 is an open source PHP based web content management system released under the GNU GPL."
TYPO3 uses these Symfony components:
Config
Console
DependencyInjection
ExpressionLanguage
Filesystem
Finder
HttpFoundation
Mailer
Mime
OptionsResolver
Polyfill Intl ICU
Polyfill Intl IDN
Polyfill Intl Normalizer
Polyfill Mbstring
Polyfill PHP 8.0
Polyfill PHP 8.1
PropertyAccess
PropertyInfo
RateLimiter
Routing
VarDumper
Yaml
According to their site: "TYPO3 is an easy-to-use, flexible, professional CMS and open source project offering services and solutions for the whole team across industries, organization sizes, and use cases.
Powered by an enterprise open-source CMS, and backed by a vibrant professional community and a commercial ecosystem — TYPO3 helps organizations connect with customers through rich digital experiences."
TYPO3 makes it simple to partner with brands you trust to incorporate essential processes and tech. Integrate digital asset management, e-commerce, translation services, marketing automation, analytics, and more seamlessly into your TYPO3 project."
The official site of TYPO3
https://typo3.org/.
Sulu
I strongly considered using Sulu for Symfony Station as it's built with Symfony. It has a simple and attractive backend dashboard. However, it's best suited for headless applications and I'm not quite there yet as a developer.
"Sulu is a content management platform based on Symfony made for businesses. It's a flexible CMS to create and manage enterprise multi-sites and a reliable development environment for high-performance apps. With powerful features for developers and a simple UI for editors it's the ideal engine for state-of-the-art business websites and web-based software."
Components used by Sulu include:
Asset
BrowserKit
Cache
Config
Console
CssSelector
Debug
DependencyInjection
DomCrawler
Dotenv
EventDispatcher
ExpressionLanguage
Filesystem
Finder
Form
HttpClient
HttpFoundation
HttpKernel
Intl
Mime
OptionsResolver
PHPUnit Bridge
Polyfill Mbstring
Polyfill PHP 7.2
Process
PropertyAccess
Routing
Stopwatch
String
Translation
Validator
VarDumper
Yaml
Sulu states: "Sulu is built in Symfony, a highly flexible and powerful PHP framework, and many developers already work with it. But building your own content management system in Symfony is very complex — we should know! — because there are many details to attend to.
If you’re a Symfony developer, you probably don’t want to build, test, debug, and maintain all this yourself. Why reinvent the wheel? By building on top of Symfony instead of establishing its own coding standards and conventions, Sulu works with the grain of many developers."
The official site for Sulu
https://sulu.io/.
Bolt
I really like Bolt, and it was one of my top three options for this website.
"Bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is quick to set up, easy to configure, uses elegant templates, and above all: It's a joy to use. Bolt is created using modern open source libraries, and is best suited to build sites in HTML5 with modern markup."
Bolt uses these Symfony components:
Asset
BrowserKit
Config
Console
Debug
EventDispatcher
Filesystem
Finder
Form
HttpFoundation
HttpKernel
Intl
OptionsResolver
PHPUnit Bridge
Process
PropertyAccess
Routing
Security
Stopwatch
Translation
Validator
VarDumper
Yaml
"Bolt is a Symfony application, and it shows in many ways. If you're familiar with Symfony, you'll immediately recognize the project structure and how things work.
That's not limited to the core of Bolt itself, though. Projects you build on top of Bolt, as well as extensions for Bolt benefit from the Symfony underpinnings."
The official site for Bolt
https://boltcms.io/.
Pagekit
This CMS is almost like a CMS starter kit. It's designed to be built upon.
"Pagekit is a modular and lightweight CMS built from the ground up with modern architecture in mind. It serves as a web application framework and provides an awesome platform for theme and extension developers."
Symfony components used by Pagekit:
Debug
Finder
HttpFoundation
Routing
Stopwatch
Templating
Translation
"Pagekit is an Open-Source project founded by YOOtheme. We're passionate about creating a modular, extendable, and lightweight CMS and bringing the fun back into content management. Pagekit is hosted on GitHub and open for everyone to contribute."
The official site for Pagekit
https://pagekit.com/.
Fork CMS
"Fork CMS is dedicated to creating a user-friendly environment to build, monitor and update your website. We take great pride in being the Content Management System of choice for beginners and professionals. We combine this grand vision with the latest technological innovations to allow developers, front-end developers and designers to build kick-ass websites."
Fork uses these Symfony Components:
Asset
BrowserKit
Cache
Config
Console
Contracts
CssSelector
DependencyInjection
DomCrawler
Dotenv
ErrorHandler
EventDispatcher
ExpressionLanguage
Filesystem
Finder
Form
HttpClient
HttpFoundation
HttpKernel
Intl
Ldap
Lock
Mailer
Messenger
Mime
Notifier
OptionsResolver
PasswordHasher
PHPUnit Bridge
Polyfill Ctype
Polyfill Intl Grapheme
Polyfill Intl ICU
Polyfill Intl IDN
Polyfill Intl Normalizer
Polyfill Mbstring
Polyfill PHP 8.1
Polyfill UUID
Process
PropertyAccess
PropertyInfo
RateLimiter
Routing
Runtime
Guard
Semaphore
Serializer
Stopwatch
String
Templating
Translation
Uid
Validator
VarDumper
VarExporter
WebLink
Workflow
Yaml
Fork says "Fork CMS is extensible via apps. According to Fork "Fork CMS is jam-packed with cool apps. And just in case you want even more, you can download additional apps to expand your site.
We're constantly working with our dedicated community to build new and exciting ones."
The official site for Fork CMS
http://www.fork-cms.com/.
Kunstmaan Bundles CMS
"The Kunstmaan Bundles CMS is an advanced yet user-friendly content management system, based on the full stack Symfony framework combined with a whole host of community bundles. It provides a full featured, multi-language CMS system with an innovative page and form assembling process, versioning, workflow, translation and media managers and much more."
Components used by Kunstmaan include:
Cache
Config
Console
CssSelector
DependencyInjection
DomCrawler
ErrorHandler
EventDispatcher
ExpressionLanguage
Filesystem
Finder
Form
HttpFoundation
HttpKernel
Inflector
Mailer
Mime
OptionsResolver
PHPUnit Bridge
PropertyAccess
Routing
Serializer
Translation
Validator
Yaml
Kunstmaan states "An advanced yet user-friendly content management system, based on the full stack Symfony framework combined with a whole host of community bundles.
You probably know that building good looking website management interfaces is hard work. That's why we combined over a decade of experience in designing and developing content management systems (CMS) with the Symfony framework (and community bundles), to create a set of bundles that enable you to create high quality, flexible and above all user-friendly CMS based websites without the hassle of creating the admin interface."
The official site for Kunstmaan Bundles CMS
https://cms.kunstmaan.be/.
Zikula
Zikula has minimal Symfony integrations.
"Zikula is a Web Application Toolkit, which allows you to run impressive websites and build powerful online applications. Zikula has received praise for many things, but we believe the highlights are ease of use, quick and easy development, security and performance and lastly flexibility."
These Symfony Components are used by Zikula:
Config
DependencyInjection
Filesystem
Form
HttpFoundation
Yaml
Zikula says "Zikula is Free Open Source Software (FOSS). It allows you to build simple one-page websites to individual web applications utilising different types of extensions for making your project to something special.
For this you can extend Zikula's functionality with modules and realise a custom look using themes."
The official site for Zikula
https://ziku.la/en/.
Concrete 5
"Concrete5 is an open source CMS designed to revolutionize user experience. Go to any page in your site, and an editing toolbar gives you all the controls you need to update your website. No intimidating manuals, no complicated administration interfaces - just point and click."
Components used by Concrete CMS include:
Cache
ClassLoader
Console
EventDispatcher
HttpFoundation
HttpKernel
Messenger
Polyfill UUID
PropertyAccess
Routing
Serializer
Yaml
Here's Concrete's pitch "Imagine being able to edit your website as easily as you edit a document. No intimidating manuals, no complicated administration interfaces - just point and click.
Your developers can build different page types and blocks that can be used interchangeably in dynamic ways over time. Detailed permissions and workflow approval processes let you model processes that work for getting your organization's content online safely and quickly.
You get all of that for free in a fully Open Source stack you can put anywhere, or you can work directly with us to get a powerful DevOps pipeline-based hosting and support."
The official site for concrete5
https://www.concretecms.com/.
Roadiz
"Roadiz is a modern CMS based on a polymorphic node system which can handle many types of services and contents. Its back-office has been developed with a high sense of design and user experience. It's theming system is built to live independently from back-office allowing easy switching and multiple themes for one content basis. For example, it allows you to create one theme for your desktop website and another one for your mobile, using the same node hierarchy. Roadiz is released under MIT license, so you can reuse and distribute its code for personal and commercial projects."
Roadiz uses these Symfony Components:
Asset
Config
Console
Dotenv
ExpressionLanguage
Filesystem
Finder
Form
HttpFoundation
HttpKernel
Messenger
RateLimiter
Routing
Security
Serializer
Stopwatch
Translation
Validator
Workflow
Yaml
Roadiz states "Roadiz is a modern CMS based on a node system which can handle many types of services. Based on Symfony components and Doctrine ORM, it allows you to create your data schema from scratch and to organise your content as you want."
The official site for Roadiz
https://www.roadiz.io/.
Contao
"Contao is an accessible open source content management system, first published in 2006. Starting with version 4 (released in spring 2015), Contao is based on the Symfony full stack framework and steadily migrates the existing libraries to Symfony components."
Components used by Contao include:
Asset
BrowserKit
Cache
Config
Console
Contracts
CssSelector
DependencyInjection
DomCrawler
Dotenv
ErrorHandler
EventDispatcher
ExpressionLanguage
Filesystem
Finder
Form
HttpClient
HttpFoundation
HttpKernel
Intl
Ldap
Lock
Mailer
Messenger
Mime
Notifier
OptionsResolver
PasswordHasher
PHPUnit Bridge
Polyfill Ctype
Polyfill Intl Grapheme
Polyfill Intl ICU
Polyfill Intl IDN
Polyfill Intl Normalizer
Polyfill Mbstring
Polyfill PHP 8.1
Polyfill UUID
Process
PropertyAccess
PropertyInfo
RateLimiter
Routing
Runtime
Guard
Semaphore
Serializer
Stopwatch
String
Templating
Translation
Uid
Validator
VarDumper
VarExporter
WebLink
Workflow
Yaml
Contao says "As an open-source CMS, Contao is based on open web standards and is easily adaptable to your needs. It features High development standards, regular updates, fast and reliable fixes, and 4 years of support for LTS versions."
The official site for Contao
https://contao.org/en/.
init CMS
Init takes an interesting approach.
"The InitCmsBundle is a small flexible cms core based on Symfony which can be used as a standalone CMS or integrated into any existing Symfony project."
Components used by init CMS include:
Asset
Console
ExpressionLanguage
Form
PHPUnit Bridge
Polyfill APCu
Translation
Validator
Yaml
"The init CMS is mission-tested, ideal for simple or complex websites that need an individual design. Since it is based on a modern framework (Symfony2), custom-made extensions can be developed quickly and easily according to customer requirements, so that no wishes remain unfulfilled."
The official site for init CMS
https://initcms.com/.
Pico
In my opinion this Pico barely qualifies as a Symfony CMS.
"Pico is a stupidly simple, blazing fast, flat file CMS. You simply create markdown files in the content folder and those files become your pages. Pico trades one-click setups and complex management interfaces for blazing speed, flexibility, and a lightweight footprint."
Pico uses one Symfony Component:
Yaml
It also incorporates Twig.
"Pico is a "flat file" CMS, meaning no database woes, no MySQL queries, nothing. Edit your website in your favorite text editor using simple Markdown formatting. Pico uses the Twig templating engine, for powerful and flexible themes."
The official site for Pico
https://picocms.org/.
Summing it up
That's it. You have impressively reached the end of this long overview list article. Congratulations.
I hope you found it useful in your search for the perfect Symfony-based CMS.
Bookmark it if you are still undecided, and thanks for reading.
Top comments (0)