Drupal vs. Joomla! What is the Best CMS for Enterprise Web Development

In various published comparisons, including CmsWire and and Top Notch Themes, between Drupal or Joomla!, the common conclusion is that Joomla! excels in allowing web developers to quickly produce high-quality and attractive small and medium sized websites while the strength of Drupal is providing a framework for larger customized sites that serve many users.

Some of the comparisons are out of date or lack sufficient technical detail to fully support their conclusions. Furthermore, both Joomla! and the Drupal CMS new versions, Joomla! 1.6 and Drupal 7, move both products in a positive direction.

This article attempts to address where the technologies stand now, with a keen eye on the fact that both are moving targets. The focus will be on using the web design software to build enterprise level websites, including those for large businesses, government agencies, and sizable non-profits, as this is the focus of Achieve Internet, based in San Diego, CA. We will examine the following topics from a technical perspective: baseline content management system (CMS) functionality, back-end appearance and functionality, and coding and customization.

Drupal vs Joomla: What is the Best CMS Functionality

Typically, large CMS deployments need to support certain baseline functions related to content and users, including:

Content management activities by multiple types of users with different levels of content access; Custom content structures; and User and content classification and organization. Joomla! and Drupal address these functional needs through the CMS’s core, extensions, or modules. "Core" denotes functionality that’s supported out of the box and "extension" or "module" denotes the need for additional software: Drupal 7’s core offers more functionality when it comes to user-created roles, granulated permissions, organic groups, custom content types, and nested content tagging.

Drupal vs Joomla!: Ease Of CMS Graphical User Interface Management

Part of the rationale for content management systems, of course, is to provide a means for different users to produce, edit, and manage content. To ensure that users perform the correct tasks and access the appropriate content, they must be organized in some GUI fashion.

Several groups exist in Joomla! initially, and the admin can easily assign new users to a group.

Adding a user is easy, but somewhat inflexible. One issue is that each user can be added to only one group. If a user performs both authoring and editing duties, for example, she or he cannot easily be added to both groups. The core software also does not support the creation of user-defined groups. So if an organization has users it would like to designate as bloggers instead of authors, this would be impossible with Joomla! core. Some extensions can allow for the creation of new groups, but the lack of integration with content access control (see below) can be a problem when using extensions in this fashion.

In Drupal core, new role, what Joomla! calls a "group," creation is trivial. Simply type the name of the new role, click "add role" and edit the permissions: When adding a new user in Drupal , admins can grant the user one or more roles in check-box fashion:

The flexibility Drupal offers allows administrators to quickly shape their CMS to their existing organizational chart. Perhaps more importantly, the flexibility related to users and roles is part of the core software and no extensions, with hacks or deprecations, are necessary to provide the basic user-management functions.

Drupal vs Joomla!: What is the best CMS Interface

A CMS typically supports some generic types of content, such as articles, news, and blogs, but many organizations need to append custom fields to these types or create their own custom content. A content construction kit (CCK) that allows users to create the molds for their own content usually addresses this need.

On the Drupal development side, in version 6, the content construction kit CCK module performs this function. The CCK integrates with Drupal’s core user-management so that access to all new content-types can be set at the level of role.

Joomla! also requires extensions in order to perform custom content-creation, but the choices are less clear cut. A variety of CCK-type extensions can be used to support custom content types, including Flexicontent, JSeBlog CCK, and See other Joomla! CCK's. Because these extensions are not as integrated with Joomla!’s core as CCK is with Drupal’s, access control (permissions), must also be considered when selecting a CCK.

An additional consideration is content-tagging. With Drupal, the taxonomy component of the core software enables flexible, nested categorization of web content. The Drupal CMS can be configured to allow users to free tag content or assign pre-determined tags.

Joomla! 1.5 core does not support a taxonomy system, like that in Drupal web design. Content can belong to an admin-defined section and a category within that section, but only one category.

Drupal vs Joomla!: Best CMS for Flexibility Core developers in both systems are busily addressing some of the baseline CMS needs. The plans for Joomla! 1.6 include the additions of flexible categorization and a granular access control system, but custom content type creation will continue to require an extension. Drupal web development, which already supports flexible user-management, access control, and taxonomy in version 6, is closing the loop on the content side by folding CCK into core in Drupal 7.

Both new versions will bring these systems forward in terms of basic content- and user-management, with Joomla! attempting to catch up to Drupal in terms of baseline core-product functionality.