Why MODX is my Preferred CMS

Published on , in Back-end with no comments .

I’m often asked what CMS I use and why so I thought I’d write this post highlighting some of the reasons why MODX is my CMS of choice.

MODX: Creative Freedom

I researched and lined up Wordpress, Joomla, Concrete5 and SilverStripe for trials. I saved MODX to last because it was immediately the favourite. I first discovered MODX around 2008 or 2009 when it was at version 0.9.6 and knew straight away I’d found something pretty special.

Unlike others, it’s a CMS that takes care of the content and lets you get on with the HTML, CSS and JavaScript to display it. It doesn’t impose any restrictions on how you do anything and that applies to everything. You can add totally bespoke functionality to the MODX manager and it will fit seamlessly with the design of the standard features, providing a very coherent experience for the admins. With other systems you often need to manage different content in different sections of the CMS and the UX for doing this can sometimes be inconsistent. This is especially true if the functionality is provided by a plugin. This immense flexibility is a big selling point for MODX and it can be achieved without taking a sledgehammer to the core.

MODX provides a great framework that you, as the developer, can use to build any site you can imagine. It’s a yes man that does only what you tell, does it the way to tell it, and outputs only what you tell it. With MODX you have complete control over everything.

MODX screenshot
The MODX 2.0 – 2.2 Manager interface.

MODX: Your Site, Your Way

Since you have complete control over what is output, MODX is great for SEO. You can easily change and tweak your site including the URL structure and meta data.

MODX is also very secure. It’s built on an object oriented core that uses xPDO (open eXtensions to PDO). All input is filtered and any database interactions use prepared statements, virtually eliminating the risk of SQL Injection. You can also install the MODX core files (including the manager) in a custom location, and even with custom folder names, for an added level of security. You can actually install MODX outside the web root so the core files aren’t even accessible over the web. Is it possible to be more secure than this?

Other CMS’s (such as Wordpress, Drupal and Joomla!) are often very easy to detect by either manually inspecting the site or by using tools such as Chrome Sniffer. They all leave their tell tale signs on sites running them. For example, a “generator” meta tag or HTTP header (sometimes even containing the version number), directories in asset URL’s such as “wp-content”, and known admin URL’s such as “wp-admin.” Openly broadcasting the CMS your site is using is a security risk. An attacker, with no effort at all, now knows the CMS you use and can attempt to hack your site using any known security vulnerabilities for that system.

MODX also uses a caching system which really helps keeps page load speeds as low as possible. This system allows complete control over what is and isn’t cached which means only part of a page could be cached if you so desire.

MODX can also power load balanced sites. In fact, a single MODX install can run multiple sites thanks to Contexts.

MODX: The Community

You can’t say this for many projects but MODX documentation is very good — whether it’s for core features or plugins. The forums are also very active and you often see the core team answering questions. MODX and their core team are also very active Twitter.

MODX: The Bad Parts

Not everything is perfect and MODX is no different. The good news is the problems listed here have been acknowledged.

MODX 2.3 screenshot
The MODX 2.3 Manager interface from the latest dev build.

One very common complaint of MODX Revolution (2.X) is that the manager is slow. The MODX Evolution (1.X) manager was built using jQuery whereas Revolution uses ExtJS 3 — a huge monolithic library. For MODX 2.3 (due soon) the manager still uses ExtJS but it has been greatly refined and is significantly faster than previous versions. Looking further ahead the MODX team is experimenting with new technology for MODX 3.0 — including Angular and Ember.

Another complaint is that people just don’t seem to like working with ExtJS — myself included. It’s a very complex tool with a massive learning curve. Unless you plan on building a Custom Manager Page (e.g. for a plugin) then it’s nothing to worry about since you won’t need to use it.

User permissions are also known for being complex. On the plus side, once you know what you’re doing then you have a lot of power to control what users are able to do and access — down to individual pages. While the system is complex, it’s very powerful.

I’ve given a brief overview of MODX and why I chose it as my main CMS and I’ll be writing about it a lot more in the future. Do you have a favourite CMS? If so what is it and why did you choose it?

Leave a Comment