Content Management Systems (CMS) -- Reviews

 

idealware issued a report in March 2009 comparing four major open source content management systems (CMS) commonly used in the nonprofit sector: Plone, WordPress, Joomla, and Drupal. You may download the report here.

 

Content Management Systems (CMS) can be implemented via many platforms and technologies.  Almost every vendor and company involved in the Internet industry has a product or provides some service(s) that is/are tied to single or multiple CMS technologies.

This review is for Open Source (free) content management products of which there are more than most people care to know about.  In addition, there are some great reviews and an annual competition to see which products are currently considered the best.

opensource_logo.gifNet Easy initiated its first search for a CMS in 2000 with specific requirements which continue to evolve today. A few of the initial requirements used in the selection process were that the system be

  1. Cross Platform,
  2. Open Source, and
  3. Secure.

We first researched solutions using Java® as it was the primary cross platform solution along with our security of choice. However, Sun® had not released Java® into Open Source model, and most Java® was being developed by corporations.  This led to more Java® developers, but most were tied up with corporate applications resulting in few mature CMS projects at the time.

As a result, Net Easy began reviewing the LAMP projects as a potential direction for development.

LAMP

lamp.jpgThe term LAMP is used to refer to an Open Source software stack for building web-based solutions (applications and websites).  The original concept originates from:

  • Linux: the computer operating system
  • Apache: the web server
  • MySQL: the database server (arguably a relational database)
  • Perl, Python, and PHP: the programming/scripting languages used to build the solution

Note that we've stated programming/scripting languages.  While in essence these are independent languages that developed separately from each other, they are not necessarily full programming languages as used in client server applications: compiled, deployed, etc. It is very rare if not  impossible to find independent applications written in PHP and compiled to deploy that are not affiliated with web/Internet scenarios.

PHP applications seem to get the most attention today and are leading the awards.  PHP is easy to learn, cheap to implement, cross platform, and Open Source.  This has led to many developers and projects over the last few years.  Many people debate whether PHP is an "Object-Oriented" (OO) programming language and this debate continues today.  However, it is probably safe to say that when originally developed PHP was not an OO language and to leave the debate to others with more time.  Having said this, PHP has limitations in regards to code development.  Having a large number of developers is great with readily supported projects.  However, it also means that people jump in and write code which may not be well done, secure, scalable, or maintainable.

LAMP is not limited to PHP as noted above.  In fact, much of what the PHP-based CMS applications lack is readily available in Plone, a Python-based CMS.

Another important site to note is Open Source Content Management:  http://oscom.org.

Python-based solutions

Plone

plone.jpgInfo:

A Python-based CMS that utilizes the popular Open Source Zope® application server.

Weaknesses:

  • Framework requires longer learning curve
  • Need to know Python to add custom content objects
  • Styles sheets are nested and become complex. Requires knowledgeable designer to complete custom design
  • No built in spell check with the WYSIWYG editor
  • Requires more computer horsepower than PHP-based content management systems

Benefits/Strengths:

  • User-friendly (easy to use)
  • Internationalized with over 35 translations
  • Access Control Lists (ACLs) down to every object.
  • Highly secure environment in out-of-box install
  • Very strong workflow with the ability to create custom workflow
  • Can add own content objects if existing do not meet all requirements
  • Extremely scalable, robust, and stable
  • Supports members (Intranet, Extranet configuration along with publication solution)
  • WYSIWYG editor with ability to switch to code and back
  • Full CMS engine as core engine
  • Standards compliant
  • Accessibility for sight- and motor-impaired users
  • Version Control
  • Search functionality built into engine
  • Unlimited categorizations, metadata
  • Does multiple websites in the monster hosting configuration
  • Numerous products to install for customization
  • OpenID, LDAP ability
  • Search Engine Optimized (SEO) code and SEO-friendly URLs
  • In-browser image resizing

PHP-based solutions

WordPress

WordPress.jpgInfo:

A PHP platform built for blogging.  It is an excellent and powerful blogging product. However, it was never developed as a CMS.

Weaknesses:

  • Blogging-only engine; can use plugins to enhance, but not developed for a CMS
  • Requires WordPress MultiUser (WordPressµ) to have more than 1 manager
  • Spamming is a problem, so use only with anti-spamming techniques of the newly included Akismet plugin
  • Plugins can conflict and break each other
  • Plugins can introduce security problems
  • Requires constant security patch monitoring and updates
  • Themes/designs are not standards compliant

Benefits/Strengths:

  • Blogging, probably the largest blogging package in use
  • Easy to teach users to use and easy to install
  • WYSIWYG editor to switch between code view and editor
  • Autosave feature in new version in case of browser crash
  • Spell checker in visual editor
  • Pages can now be drafts or private
  • Upload manager for photos, images, video, and audio
  • Good import utility
  • Offers a lot of templates/themes for design

 

Drupal

drupal.gifInfo:

A PHP CMS that has more thorough development; it was originally built as a CMS.

Weaknesses:

  • Steep learning curve of framework
  • Admin interface difficult to first-time user
  • Need to know PHP to develop/manage
  • Non-private state of documentation
  • Configuration requires knowledge or is very slow
  • API is challenge to deal with/learn
  • Templating is not very good, but is getting better

Benefits/Strengths:

  • Access Control Lists with role based permission system
  • Lots of extensions listed by version
  • Search module
  • Version control
  • Manage users and multiple sites in one instance
  • Taxonomy strong metadata/categorization
  • Ability to make content types
  • Logging feature which can email/sms message for notice
  • OpenID support
  • SEO-friendly URLs

 

modx

modx LogoInfo:

A PHP CMS that originated late in the game, thus not as mature, but has a very nice code base.

Weaknesses:

  • Poor workflow
  • Weak Version control
  • Fewer modules
  • No multiple sites at this point, but hopefully coming soon
  • Conversion will lose some features

Benefits/Strengths:

  • Full CMS with good code development at core
  • Division of labor between programmer, designer, and content staff
  • XHTML compliance
  • Simplicity of CMS (like Folders and Files) for user
  • Flexibility in framework is pretty easy
  • ACLs
  • Some PHP is needed to work with in development but less expertise required.
  • Great import function for content

 

Joomla

Joomla.pngInfo:

A PHP project that originated from Mambo and is having several severe issues at the present time. Additionally, it does not include Access Control Lists (ACLs) solutions for security. Thus, Net Easy does not recommend this platform.

Weaknesses:

  • No Access Control Lists (ACLs); there is a module hack to try to address this
  • Every member can edit other areas
  • No workflow with each role having the same ability regardless of content
  • Weak framework with a lot of bloat
  • Themes are NOT standards compliant.
  • Blogging feature is not good
  • Plugins are not GPL-compliant and may lose commercial plugins
  • Safari does not work in the WYSIWYG editor

Benefits/Strengths:

  • Multilingual (multiple languages)
  • Full CMS system
  • Marketing is great but doesn't match the product
  • Powerful community tool

Perl-based solutions

Perl

lcamel.gifPerl is a great administrative language, and many people use it for website applications, in particular with CGI processing. One of its strengths is its text processing and regular expression ability. However, we do not believe it makes a good web application model as it lacks the Model-View-Controller (MVC) paradigm. It also does not allow for appropriate separation of code logic from design.

Mason

Mason is a Perl-based product for building websites.

 

Microsoft .Net Solutions

Microsoft.pngWhen doing our research, neither being Open Source nor cross platform immediately eliminated the Microsoft products even though Microsoft taunts the multiple language ability of the .Net platform.  As of this writing, the Microsoft SharePoint Server is their recommended Content Management system.  This requires you to use the Microsoft Server or like service provider.

However, one new project named mojoPortal is written in C# and will operate on both Microsoft's platform along with Mono on Linux or Mac OS X.  You can review this project at http://www.mojoportal.com.

 

Java®-based solutions

java.jpgJava®, the number one cross-platform language to date, was not and is still not a true "Open Source" language in that Sun continues to control its direction even though they've loosened the reigns some (now - not during review). However, here are some resources for Java® based CMS.

Java® is a well developed and mature programming language.  However, it requires a long time to train and develop experienced Java® developers, and the code is not as easy to maintain as Python.