Movable Type vs. ExpressionEngine — A comparison

Published on:

I'm in the process of evaluating several weblog solutions for building a corporate weblogs farm. In other words, I'm looking for a solution that would allow a company, with a simple (if not single) software installment on its existing web platform, to host any number of internal and/or external weblogs. My requirements and constraints for such a product are:

  • Hosting on a LAMP platform: Linux, Apache, MySQL and PHP/Perl
  • Ability to integrate the system to the company own authentication system
  • Product installation and configuration support
  • Maintenance (software updates and upgrade path)
  • Produces pages that conform to the XHTML/CSS web standards
  • Authors can author content with their browser of choice on either a PC or a Mac (with a preference for "modern" versions of IE on Windows, Safari on Mac OS X and Mozilla on both)

With this goals and constraints in mind, I ended up comparing Six Apart's Movable Type 3 and pMachine's ExpressionEngine 1.0. The following is not a full fledged comparison of both products, but I thought it might be of interest for other people as I came out with some interesting differences that might help someone else make their mind about them.

Some reminders and disclaimers before proceeding:

  • always take others' views with an appropriate amount of salt and with respect to your own requirements
  • this comparison is subjective, at least to my requirements above
  • I've been using Movable Type for one and a half year, ExpressionEngine for four days
  • this review is not extensive, I concentrated on the differences that matter to me and would help me determine which product is better suited for which usage. If you're looking for a "X is good, Y sucks" review, you'll be disappointed — I don't have for habit to include products that suck in my shortlists

As usual, I'm looking forward to reading your feedback to this review.

Companies and products background

Six Apart — Movable Type

Six Apart Ltd. is a 2 year-old company based in San Mateo, California, which describes itself as creating "tools that enable tens of thousands of individuals, organizations, and corporations to participate in the web's full potential by publishing their ideas on the Internet with simple, yet powerful software and services."

Movable Type is a server-based software written in Perl which the company describes as a "powerful, customizable publishing system which installs on web servers to enable individuals or organizations to manage and update weblogs, journals, and frequently-updated website content." or as no less than "the most powerful and customizable weblog publishing system available today" depending where you look.

This review covers MT 3.0 (in version 3.0beta3 at this time, the production version is expected anytime soon.) The first version of MT was released in 2001. Six Apart also operates a hosted weblogs platform named TypePad which shares many similarities with MT.

pMachine — ExpressionEngine

pMachine Inc. is a 3 year-old company based in Portland, Oregon, which describes itself as a "technology company that develops cutting-edge web publishing software used by thousands of individuals, organizations, and companies around the world."

ExpressionEngine is a server-based software written in PHP which the company describes as no less than "the world's most creative and powerful web publishing software."

This review covers the freshly released EE 1.0. EE is a new product which inherits some characteristics from pMachine, the original pMachine's product released in 2001.

Licensing conditions, costs and support options

The licensing conditions that are of particular interest for the scope of this review cover: business uses, the ability to modify the source code, the obligation to display copyright notices. Both companies offer a commercial license with few restrictions, basically forbidding to resell or rent their products, e.g. to setup a commercial platform of hosted weblogs. Although both products are delivered with their source code visible, none of them are open source software. Both companies allow the end-user to modify the code but forbid redistribution of code of any kind.

Movable Type

The licensing conditions, price list, upgrade path and support options for MT 3 are yet to be published, but are likely to be very different from the current $150 license per server installation and per website required for a business use (the absence of an upgrade path from version 2 to version 3 is a clear sign of rupture with the past.) The current license (MT 2) does not offer any support service, but Six Apart is expected to provide commercial support for MT 3. Six Apart is currently developing its physical presence outside the U.S. which I hope will allow them to offer a better support to non U.S. customers.

ExpressionEngine

The EE commercial license is $199 for each installed copy of the software ($149 for non commercial, non-profit usage.) It is my interpretation that a single copy of EE can technically drive multiple sites under multiple domains, and this setting is not forbidden in the license. Technical support is available only through the company online support forums — a short inspection of those forums tells me that the developers are responsive and helpful (I received a response overnight on Saturday!), the only drawback being that since they are based in the U.S., the time zone difference is of concern for a European company. I haven't found any information about the upgrade path (only the cost of upgrade from pMachine Pro to EE, which is $99) nor the conditions for software updates.

Verdict for licensing conditions, costs and support options

Until MT 3 is released with its final license, it's impossible to give a verdict. However here is what my little finger tells me: MT 3.0 will be significantly more expensive than EE 1.0 but Six Apart will offer more support options, and a wider physical presence (outside the U.S.) than pMachine. Also note that pMachine has announced its intention to sell certain optional modules to EE, so the total license costs may be higher than the initial EE license. Any lawyer would be cautious about both companies lack of clarity about what happens after one has bought a license, and both should do a better job at letting customers know in advance what their upgrade policy is.

Basic architecture, installation and operation

Movable Type

MT is written in Perl and is best associated with MySQL (it can also use the file-based Berkeley DB but this is not recommended). For more information, see the MT requirements. Its installation can be time-consuming if the server doesn't have the necessary Perl libraries pre-installed, but I found the installation process very well documented and without any surprise on all the installations that I've done so far. I would summarize it as complex but easy. Note that each installation of MT requires its own database, as MT does not have the notion of table names prefix.

MT operates by building pages in the form of physical files in the server file system that are generated through the use of templates each time new or modified content is saved in the database. This is a distinctive character of MT that brings certain key benefits, notably:

  • zero impact on the resources necessary to serve the content — in most situations the pages will be static HTML pages that require no database connection, which is the ideal situation for heavily-loaded sites
  • it is completely agnostic regarding any server-side technology that can be used to embed business logic in the pages (e.g. MT templates can include PHP, ASP, JSP tags that will be processed by the web or application server when a page is requested)
  • friendly URLs — virtually any URL scheme can be achieved with MT

MT has a very smart engine that allows it to rebuild only those pages that are impacted by a change, putting a one-time payload on the server. This said, it is very important to understand how MT works and how to make use of additional technologies such as server side includes and templates modules to reduce the rebuilds to the strict minimum necessary. The templates that come out of the box on a fresh installation of MT are not necessarily optimized — some bad template designs may trigger a full site rebuild that can be extremely slow as a site grows — but progress is notable from one version to another which means that Six Apart is aware of the caveats of its system.

MT requires no particular operational maintenance on the server. Its security can be tighten by isolating its CGI scripts in a dedicated directory and its performance can be increased by running it under FastCGI.

ExpressionEngine

EE is written in PHP and requires MySQL. For more information, see the EE requirements. Its installation is very easy and well documented. After the database and file permission are setup, there is a wizard that does a good job at finding installation errors. Installing an out of the box, trial version of EE took me basically 5 mn. EE can use any existing database as it allows to define a table names prefix to avoid any conflict of name with existing tables.

EE is entirely PHP driven and does not build pages like MT. Actually an EE-driven site consists of just a few PHP scripts that pulls content from the database and dynamically assemble it on the fly with the proper template. There is a cache system that helps reduce the number of requests made to the database by storing the result of certain requests to files on the file system. The URLs can be made search-engine friendly but since they must carry information about the template along with the data that needs to be assembled, the URL scheme is not as flexible as with MT (but they can, with some tweaking, be made rather short and user friendly.)

EE requires no particular operational maintenance on the server. Its security is the same as any PHP-driven site, it depends on the PHP settings and best practices of PHP development. Its performance can be increased by using its cache and possibly the Zend engine optimizers.

Verdict for basic architecture, installation and operation

Many people think that with a powerful server it is better to go straight for a server-side language such as PHP and generate all the pages dynamically. Many people, usually the same, find that MT's approach to build files is less flexible or less interesting (whatever that means) than the fully dynamic approach. I do not buy into this at all. Firstly, sizing server resources is a tricky job that programmers seldom do well (if at all), especially with a commercial product which behavior and performances may not be fully known, and it's not a good idea to underestimate how much resources are needed as a site grows unless one wants to see a server meltdown (which usually happens at the worst possible moment.) Secondly, critics of MT are usually wrong about MT's performance problems. I find it important to set the record straight about the fact that building files is very valid architectural choice and that the number one problem that is often charged against MT, namely slow rebuilds as a site grows in size, is due to poorly designed templates and not to how MT works. If you don't believe me, look at the cache system of EE: it builds and serves files to reduce the number of database requests! QED.

If find both products equally strong in their architecture. MT is agnostic regarding server-side technologies thus allows for a large choice of dynamic technologies to build a dynamic site, its file-based pages and flexible URL scheme make it ideal for static sites. EE is entirely PHP-driven and generates only dynamic pages, which is fine according to my own requirements and ideal for highly dynamic sites, but may draw more resources from the server than MT for a comparable result.

If you plan to extend the system, note that plugins for MT need to be written in Perl while EE modules are written in PHP. The language difference may influence your choice. However, both products have a developers community around them, with an advantage to MT considering its longer market presence and higher adoption compared to EE (an advantage that is likely to erode in time.)

Users management

Movable Type

MT distinguishes two categories of registered users: authors and commenters (registered comment authors). Authors are associated with any number of weblogs, and their rights can be customized as follows:

General Permissions — User can:
create new weblogs
view activity log
Per weblog permissions — User can:
post
upload files
edit all posts
edit templates
edit authors & permissions
configure weblog
rebuild files
send notifications
edit categories
edit address book

MT authorizations are fairly granular and it's easy to have a limited number of "super users" who will be able to administer the entire installation (create and configure weblogs) and any number of authors with ad hoc rights on their own weblog(s) (typically the ability to post, upload files, send notifications, edit categories and address book.) Registered commenters are associated to a weblog, this feature being focused on comments management (view/edit comments, ban commenters.) There is also a list of subscribers to the email notification list, which is very basic (you can only view, add and delete subscribers on a per weblog basis.)

ExpressionEngine

EE has the notion of members and members groups which are by default: Banned, Guests, Members, Pending and Super Admins. This approach is familiar to community sites, where visitors can register as members of the community and be granted certain permissions according to the group they belong to (note that a member can belong to one group only.) EE authorizations are very granular, since EE allows for the creation of any number of members groups, each group defining its users rights in the following categories:

Site Access — Member can:
view site when it is online
view site when it is offline
Member Profile Privileges — Member can:
view public profiles
mail other members via the profile email console
Comment Posting Privileges — Member can:
submit comments
moderate comments
Search Privileges — Member can:
use search utility (with a throttling limit)
Control Panel Access — Member can:
access the control panel and if so, can:
publish pages
edit pages
edit templates
send emails to members (with further granularity)
configure modules (plugins)
administer the site (with further granularity)
Weblog Posting and Editing Privileges — Member can:
view weblog entries authored by others
delete their own weblog entries
edit entries authored by others
delete any weblog entries
change the author name when posting weblog entries
be allowed to post and edit entries in any number of weblogs
Weblog Posting and Editing Privileges — Member can:
Comment Administration Privileges — Member can:
moderate comments
view comments in weblog entries authored by others
edit comments in their own weblog entries
delete comments in their own weblog entries
edit comments in any weblog entries
delete comments in any weblog entries
Template Editing Privileges — Member can:
edit templates in any number of templates groups
Module Access Privileges — Member can:
access any number of modules

As you can see, EE opens a much wider range of possibilities with respect to users management (but EE has also a wider set of features than MT and therefore requires more settings.)

Verdict for users management

In terms of flexibility, granularity and features, EE wins hands down with its member groups architecture. The drawback is that users management is more complex than with MT, which wins in terms of ease of use and simplicity with an approach that is clearly oriented towards simple authors and comments management on a per weblog basis. I find that MT would benefit a lot from better user management and the notion of user group would help it a lot.

Templates management

Movable Type

Templates in MT are always specific to one weblog. While it is possible, with plugins, to assemble content coming from several weblogs in the same MT installation, each weblog has a separate set of templates split in the following categories: index, RSS/Atom feeds, archive-related, modules and miscellaneous templates. Out of the box, there is no way to share templates across different weblogs but it seems possible, again with a plugin, for one weblog to trigger the rebuild of a template in another weblog.

When a new weblog is created, it comes setup with a basic set of templates that provide all the basic functionalities of a weblog ready to work with minimal configuration required.

MT template tags are of the form <$MTTag attribute="..."$> or <MTTag attribute="..."> making them hard to distinguish from both (X)HTML and PHP tags (if you're using the short PHP form <? ... ?>).

Tags are fairly comprehensive, well documented and extensible by plugins.

ExpressionEngine

Templates are global to the EE installation and are organized into named groups. One group can comprise any number of named templates that are invoked through the following URL scheme: http://www.youdomain.com/path_to_ee/index.php/group_name/template_name/...

An out of the box installation of EE comes with three groups and a basic set of templates for: weblog pages and RSS/Atom feeds, one member page and one search page. When a new weblog is created, no templates are created for it, a new group and set of templates must be created and filled manually. With the default installation and without tweaking or creating templates, I was unable to create multiple weblogs with EE by simply adding and configuring a new weblog like with MT.

EE has a very nice versioning feature for templates, that allows to see previous versions and roll back to anyone of them if necessary.

EE template tags are of the form {tag} — making them easier to distinguish from (X)HTML and PHP tags.

Tags are fairly comprehensive, correctly documented (though the documentation can be improved) and extensible by plugins.

Verdict for templates management

If you are going to have a number of templates that are common to many weblogs, EE's approach will prove useful. However, if your aim is to provide a weblogs farm with independent weblogs that have little in common, I find that MT is better suited and provides a faster setup for new weblogs. Both approaches are very different and have their advantages and drawbacks. Although this is subjective and a matter of habits, I find EE's templates easier to read than MT's (especially if the latter contain PHP code.)

Content management

Movable Type

The edit screen of MT works with any modern, web standards compliant browser with one exception: its (very limited) HTML code helper buttons work only with IE on Windows. The form can be customized to show only a basic, an extended or a custom set of predefined fields. MT 3 does not allow for custom fields. The text fields can be post-processed to convert line breaks or perform more advanced text processing through plugins.

File upload is simple and straightforward. Images can be post-processed with automatic thumbnails creation (if the server is properly configured.) There is no file management facility yet (in the beta version at least.)

Categories are basic in MT: one entry can have a primary category and any number of secondary categories, but this is a flat hierarchy since there is no notion of nested or sub-categories.

An entry can be saved as draft, in which case it is stored on the server but not published on the site, or saved as "publish" which triggers the necessary templates rebuild to publish its content. Deleting an entry requires a similar rebuild to remove the entry page from the server and links from archives. MT does not provide for automatic publication or removal of an entry at a certain time, but it allows to modify the apparent timestamp of publication.

MT has an API which allow the use of an external editor, such as the desktop applications NetNewsWire and Ecto, which offer an infinitely better user experience to authors than the web form of MT.

ExpressionEngine

The edit screen of EE also works with any modern, web standards compliant browser and its HTML code helper buttons sort of work with Safari on the Mac, which is better than nothing. The editor buttons can be customized. EE has a very flexible and powerful feature that allows to define any number of custom fields, assembled in groups that can be associated with any weblog. Text fields can be post-processed to convert line breaks to either HTML or XHTML, or perform other transformations through optional modules.

File upload is simple and straightforward, and there is a file manager facility. Images thumbnails can be created automatically (again if the server is properly configured.)

Categories are very flexible, they are organized in groups that can be attributed to weblogs, and a category can have a parent, allowing for hierarchies.

An entry can have any number of status which are configurable and attributable to member groups, which can be the basis for a customizable editorial workflow. An entry can be automatically published and/or removed at a specific date and time — this is one benefit of the dynamic generation of all pages. Other notable differences from MT are: pings to notification services (such as weblogs.com, blo.gs, etc.) are customizable for each entry, an entry can be set as "sticky" (e.g. it will remain on top of a list rather than be pushed down by fresher entries) and the author name can be overridden (allows for someone to publish an entry under someone else's name, something that may shock many webloggers but can be useful in a corporation for "busy" executives who "delegate" posts to their assistants.)

I haven't seen any mention of a standard API for EE that would allow the use of an external editor, but pMachine provides a desktop editor named pMpost (currently Mac OS X only and limited to pMachine Pro.) The lack of a standard API in EE may be a serious lack for certain applications (Atom may be an option to look at here.)

Verdict for content management

On the positive side of things, I find both tools equivalent in terms of usability, with intuitive interfaces (except for the one thing below.) The differences that depends on your requirements would be around HTML helper, categories, automated posting/removal of content, custom fields where EE is ahead of MT. For simple weblogs, novices should be equally comfortable with both tools.

Both tools (as virtually all other similar products) do an equally bad job at exposing authors to FUC. This isn't acceptable for commercial products aimed at a non technical public and which are described with those superlatives. You've seen it here first.

Spam protection

Movable Type

MT 3 offers limited protection against comment spam. The system can be configured, manually, to ban certain IP addresses, ban a registered commenter, prevent flooding by detecting and blocking repeated comments issued by the same IP address in a certain time interval. With MT 3 Six Apart has introduced a centralized registration system called TypeKey which could marginally help in reducing comment spamming, although I'm pessimistic about that (note that TypeKey is not promoted by Six Apart as a tool to reduce comment spam but as a free registration service.)

ExpressionEngine

EE has a bunch of built-in protections against comment spam and attacks: such as forcing email verification through registration, robots detection, CAPTCHA (a Turing test that's not friendly to blind people), denying duplicate data, comments and TrackBacks time throttling. I think that its comment moderation capabilities can also help in that matter for community sites.

Verdict for spam protection

Comment spam is a real concern for all weblog editors and, as pMachine notes, there is no "silver bullet" against this pollution. Although this needs to endure the test of time, I have the strong feeling that EE is more advanced than MT in terms of counter-measures against comment spam. Something as simple as preventing the same comment to be posted twice would have saved me many, many times. Six Apart please note: you're not leading the way here.

Conclusion

This comparison should have been between ExpressionEngine and Movable Type Pro, but MT Pro is still in limbo and I have no actionable information to work with at this time. When MT Pro comes to life, it will be interesting to review this comparison.

Movable Type 3 is clearly meant for weblogs and weblogs only, continuing in the foot steps of its predecessors. There is no published roadmap for it, but while version 3.0 is no big departure from the past, one can expect that version 3.1 will be the one that moves MT really further from the current MT 2.66. For simple weblogs that require lightweight user management, MT is a strong, straight to the point, reliable product. Six Apart has gained the first seat in terms of name recognition in the weblogs world and their current expansion, including a physical presence outside the U.S. is a very positive sign of strength and capabilities.

ExpressionEngine, or community websites meet weblogs, is clearly different from MT. It might seem young compared to MT but it benefits from lessons learned with pMachine Free and Pro. It might be a bit oversized for simple weblogs, with its quite complex configuration and administration but for community sites that are build around a common set of pages and features, it seems to be an excellent choice with an already impressive set of features, high modularity and lots of room for expansion (pMachine promises that more modules will be added to extend EE, such image gallery, discussion forum, user weblogs, etc.) I can definitely see its use as a content management system for different types of websites, not just weblogs, and Rick Ellis (CEO and Lead Developer of pMachine) has clearly expressed his desire to blur the line between weblogging tools and content management systems. pMachine Inc. is slightly older than Six Apart but does not have the same name recognition, yet. The company physical presence is virtually limited to its website, so companies betting on EE should better be confident with this approach (which isn't a problem for those also betting on LAMP!)

Both products are good choices for a company looking for setting up a weblog farm, their differences rather than their similarities, and your own needs and capabilities to customize your site besides what comes out of the box will help to determine which one is more suited than the other for a particular use. But for companies which want to go beyond the weblog, and until Six Apart comes out with Movable Type Pro, pMachine has a strong advantage with ExpressionEngine in its arsenal. Both products can be tested with fully operational versions, so test them and make your mind before you buy!