Most web sites these days use a Content Management System (CMS) to manage and display content. At its most basic, a content management system provides an interface for creating and structuring content that is displayed on a website. A good CMS can make managing a website easy for the non-technical user, and through blogging software (a simple kind of CMS), CMS powered sites have opened up web publishing to the masses. Currently, there are as many CMS solutions as there are industrious programmers, which is to say, quite a few. The most popular tend to fall into two main categories:
- Site-in-a-box solutions: these were developed to make creating and managing a website as simple as installing an application. However, they can be used to create sites that are quite complicated, and reflect this complexity in their management interfaces (look no further than Drupal’s really unintuitive system of nodes and node/content types). Rich APIs and plugin architectures are a hallmark, allowing for third party extensions that expand on the core functionality. Examples include Joomla, Sharepoint and Drupal.
- Began-life-as-a-blog solutions: these system go for simplicity over complexity, and often place an emphasis on design and presentation rather than structures and data accessibility. However simple they may have started, most are now full fledged CMS solutions providing theming, plugins and all the basics that a developer needs to create a full-featured website. Examples are WordPress and Movable Type.
So, as a site developer, a CMS is great choice from which to build a website for a client. It has the obvious selling point of being user friendly and easily manageable for clients to continue updating once the site is delivered. However, you now have to choose between the many great solutions out there. This article will highlight the advantages and disadvantages of two major free CMS solutions, Joomla and WordPress, each one from a different category listed above. This is not a technical comparison (i.e. which is faster, better developed, etc), but rather a look at the design, features and overall usefulness of each. I’ve developed sites using both solutions, and have received a good amount of feedback from clients that I’ll integrate into my analysis of both.
Joomla!
Joomla! is a great full featured CMS. Built in PHP and using MySQL as the backend database, Joomla! provides a rich theming architecture and a solid API for building plug-ins and extensions. One of the main attractions of Joomla! is its perceived ease of use – it has a very straightforward content model – and its large number of freely available plug-ins. Need a discussion forum for your site? Joomla! probably has a free plug-in for you (try Fireboard).
Common criticisms of Joomla! include its speed. Each page load usually requires over 20 separate SQL queries, and this can be noticeable on a high-traffic site. Also, as a developer, I’ve often been frustrated with the poor quality and integration of third party extensions. That discussion forum above? It may be a breeze to find an install, but once you get it plugged into your site, its going to take hours of CSS and PHP tweaking to keep it from sticking out like a sore thumb in your site design.
Setting up a Site in Joomla!
Getting Joomla! up and running is pretty simple. It has an easy plug-n-play installer that gets you all set up and generates the necessary configuration files automatically. It also includes a few generic templates. However, creating your initial site structure and content can be fairly complicated and not always intuitive. One of my particular gripes about Joomla! is that if an article is not explicitly referenced as a page in a menu hierarchy, you can’t link to it directly. This means that you have to go through the time consuming task of creating your menus in Joomla!, correctly referencing all your content pages, then integrate your menu into a custom template. This is great if you are changing your content and structure frequently the site menus updated automatically. But for most websites this is a huge pain in the ass.
Theming
Joomla! uses a less-is-more approach to theming. Your site theme is specified in one file (an index.php file in a theme folder), and includes all display code that is used on any page, even if you want different layouts, etc. You make lots of use of if defined statements to catch when a sidebar is displayed, for example. Determining what is actually displayed on each page is done entirely within the administration interface, by specifying display areas that you’ve defined in your template file (sidebar1, sidebar2, etc).
In theory, this is great, but I find that developing themes can be really complicated and time consuming because you are going between the code and administration interface much too often. If you want to create a new location for a widget, you have to create the <div> in the template file, then navigate through about 5 different menus in the admin interface to assign the widget to the new location.
Everyday Use
I had high hopes for Joomla!. I originally used it because I thought that I could implement it, write an administration manual for the client and then send them off on their way. Unfortunately (or fortunately if you look at from a business perspective) that was not the case. Fundamentally, Joomla! suffers from three very big shortcomings:
- It is just too complicated for tech un-savvy people to use. The administration interface is big, complicated and often unclear as to what you need to do to accomplish even a basic task. Editing an article takes a lot of effort, and I found that my clients just found it too intimidating.
- The Joomla! user interface is awful. Related to the point above, this stems from the fact that Joomla! is very clearly an open source project that is designed by committee. Stupid interface decisions make it a total pain in the ass to work with. One example: for some unfathomable reason, Joomla! decides to aggressively lock any resource you are editing, and while locked, you can’t use any of the navigation menus until you explicitly click the ‘Cancel’ or ‘Save’ button. All you have to indicate that you are stuck is a very light gray shading over the menu items, which is indiscernible on most computers.
- Security is non existent. I’ve had all of my Joomla! based sites fall victim to successful hacking attempts. Luckily most have ended with simple spam injections, but I’ve been amazed with the ease hackers seem to gain access to a Joomla! system. The community seems aware of this, but security patches are few and far between.
Bottom line: Joomla! is powerful, complicated and feature rich. However, poor interface design decisions and its susceptibility to hacking make it a painful experience for day-to-day use.
WordPress
WordPress started as a basic blogging software but has expanded into a pretty full featured CMS. Also built with PHP and using MySQL as the backend database, WordPress provides a superb user interface, rich theming and extension ecosystem, and pretty good reliability. I originally started using WordPress as the software for this blog, but have used it for a few websites now and am really impressed with it as a full features CMS.
Setting up a Site in WordPress
Two words: dead simple. Getting a site up and running is a painless install process of filling out five fields with DB info. After that, it all done through the admin interface. WordPress includes a great selection of themes, all of which are available for searching and installation directly through the administration interface. This is awesome. You can have a site set up with a brand new, customized template in 30 minutes and all without touching any code.
Installing plug-ins and widgets is also a breeze. Again, the plug-in directory is searchable through the admin interface directly, saving you a lot of time. There is a growing library of plug-ins available for WordPress now, and many provide functionality you would only expect to find in a more complicated CMS like Joomla! or Drupal.
Theming
Ironically, theming in WordPress feels more technical than in Joomla!. This is interesting for a system that is so much more user friendly in every other aspect. WordPress themes require a minimum of five different php pages if you are creating a complete theme. The index.php theme file is used as a fallback if a specific layout can’t be found, say page.php for a regular page. Additionally, you can create arbitrary php functions which are included in the functions.php file.
I’m really torn about the WordPress theming system. Part of me really likes having complete control over the code that you get with the granular files and functions of a WordPress theme. But I also wish there was a more elegant solution that matched the rest of the great conceptual design of the WordPress system. However, once you get a theme setup and installed, it is a breeze to administer and alter without ever really having to touch the code again. WordPress includes a great drag-and-drop interface for applying widgets to your theme, and you can install new widgets through the same interface without having to edit your theme file.
Everyday Use
WordPress is a joy to use. Every element of the software is beautiful, functional, and clearly a lot of effort went into the design. One thing that keeps making my day is the little ways that the administration interface makes your job easier. From being able to edit every setting within 1 click of the main menu, to automatically alerting you of new plug-ins and core versions, WordPress makes administration simple and easy.
Clients love it too. Adding a new page, or post is dead simple and doesn’t require any technical expertise at all. I’ve found that my clients really love the integrated stats system (actually a plugin, but designed by Automattic) as well as the simple WYSIWYG article editor.
So, which one should I use?
Good question. All things being equal, my time and effort is going into WordPress powered sites. Reasons include:
- Ease of deployment. Great installer and support make it fantastic to set up.
- Ease of development. Themes are a little complicated, but with the complexity comes great control over your sites appearance.
- Ease of use. WordPress is just nice to use. The administration interface is the best out there. I have many moments where I think ‘Man, that’s a cool/handy/well designed feature.” Clients also find it easy to use and it allows them to get their jobs done without having to come to me for support.

I think after the release of the newest version of WordPress 3.0 it now has the upper hand over Joomla and here are my top reasons for that.
http://www.elmalak.info/wordpress-3-vs-joomla-round-2/
Hope you agree with me.
thanks,
elmalak
i agree that joomla cms is quite slow. i’ve never tried out any other cms. if i want to switch to wordpress, is it possible to export content from joomla to wordpress?