Exploring the 17 Content Management Systems of Symfony
Tags: symfony, drupal, joomla, bolt
Published: 2022-01-14 16:15:00

[This article first appeared on Symfony Station](https://www.symfonystation.com/content-management-systems-symfony).

Technically the CMSs in this article aren't of Symfony but [built with its components to various extents](https://symfony.com/projects/category/cms). Some of them have the [capability to incorporate Symfony Bundles](https://symfony.com/doc/current/bundles.html#sln). 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](https://www.symfonystation.com/How-Symfony-Station-Built) 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](https://www.symfonystation.com/How-Symfony-Station-Built).

"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](https://www.symfonystation.com/How-Symfony-Station-Built) 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](https://showcase.joomla.org/).

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](https://framework.joomla.org/) 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.