The fundamental goal that its authors wanted to achieve with ExpressionEngine was modularity. Think Legos. EE wanted to be a system that could become different things to different people just by integrating add-on modules. The core ExpressionEngine system is a weblog application, just like pMachine. But unlike pMachine, ExpressionEngine natively supports modules and plugins. In fact, most components in ExpressionEngine are modules.
A very common challenge among people who develop web sites is this: How to integrate different web programs into one cohesive site. Most web applications do one thing so a web designer must purchase a blog system from one vendor, a discussion forum from another, and an image gallery from yet another. And then they must figure out how to get these stand-alone apps to talk to one another. Not easy. With ExpressionEngine you have a seamless package that permits your users to have a transparent experience throughout your site.
In the coming months we will release a range of modules that will position ExpressionEngine as the most compelling web community building platform available. An Image Gallery, Discussion Forum, and E-commerce System will be just a few of the exciting new modules to emerge. And our User Blogs module will allow you to offer your members their own weblog, or even let you start your own blogging service. Please note: Some modules will be sold separately.
b) Template Management
Page management and tempting is area in which EE takes a different approach from its predecessor and most other popular weblogs/CMS solutions. ExpressionEngine permits embedded sub-templates, so you can create your pages with shared headers, footers, and other components. The templating system also supports PHP scripting directly in templates, a feature which may prove to be very valuable for all PHP-savvy advanced users.
c) Data Modelling
In most weblogs/CMS tools you have a fixed number of fields for your content, and a fixed number of fields for your member profile information.
Enter Data Modelling. ExpressionEngine lets you define your own unique data model based on your needs. Same with member profile information. EE has applied the same approach to categories, statuses, ping servers, and other components. In ExpressionEngine, each one of your weblogs can be set up to manage completely unique information. And since ExpressionEngine is a true multi-user system, each author who creates content can have unique access and other privileges.
pMachine Pro gives you six entry fields for your weblog content - more entry fields, in fact, than any other weblog application. ExpressionEngine blows that away by giving you an unlimited number of entry fields - per weblog. Fields can be input boxes, textareas, or pull-down menus.
Do you need twenty fields to create your killer e-zine? No problem. Or how about a pull-down menu containing the mood you're in when you post? Simple. Or perhaps a couple fields for your breakout content? Your choice.
d) Member management
EE lets you run a membership site with a robust set of member tools. EE utilizes the concept of Member Groups to enable a very precise degree of member management. And each member has a much better suite of tools with which to manage his or her account. These tools will soon integrate private messaging, subscription management and other advanced functions. If your goal is to build a Web community, this may be the level of member management that you need.
The member management system allows data modelling as well, letting you define what personal information you want to collect from your members. These custom fields can be input boxes, pull-down menus, or textareas. You can even make fields required for member registration.
ExpressionEngine gives you an unlimited number of Member Groups, each with over 40 control preferences. These preferences let you define exactly what each member of your community is permitted to do. Access to your web pages can be restricted to any combination of Member Groups as well - on a page-by-page basis.
e) Scalability through data caching.
A scalable system is one that can meet the challenges that high levels of traffic impose on a web server. Dynamic systems like MT and ExpressionEngine display your website in real-time by pulling information out of your database and building the presentation for each visitor. Dynamic systems place a greater load on a server than static systems do. It takes more server resources to create a dynamic experience then it does to display a traditional static web page. For small and medium sized sites the resource demand of a dynamic system are generally not a problem for a server. However, for very highly trafficked sites, managing server resources is critical. So how does EE solve this? Through data caching. Caching means that the output of your database is stored in a light-weight reusable format. pMachine and MT do not have any data caching (nor do most web apps). ExpressionEngine has instead three full separate caching systems: Query Caching, Tag Caching, and Template Caching. You can cache the output of your database, entire pages, or even sections within pages. Our caching systems are so advanced, in fact, that you can even cache pages that must remain dynamic, like your user comment page. ExpressionEngine will intelligently refresh the data cache after user input.
In other words, ExpressionEngine is Fast. Really Fast.
ExpressionEngine raises the bar for dynamic systems by utilizing server resources at a level almost on-par with static pages. For the first time, you can achieve static server loads - and static page load speeds - from a fully-dynamic system. No other content management system, other than those costing tens, to hundreds of thousands of dollars does achieve this level of performance and scalability.
f) A template library with full source code. EE template engine lets your pages come alive, with support for sub-templates, conditional operators, dynamic variables, embedded PHP, direct SQL queries, and other features only found in enterprise-level content management systems. As a user, you'll appreciate the elegant touches, like a customizable workspace, a versioning system so you'll never lose a single change you make, and a hit tracker for each page so you'll know which ones are most popular. Templates can be even exported and shared with other users with maximum ease.
ExpressionEngine supports cutting-edge security features, like 160 bit SHA1 password encryption, hash-encoded forms and duplicate data denial to prevent spamming, a password lockout feature that deters collision and brute force attacks, a Secure Password Mode that prevents users from choosing passwords that appear in a dictionary or that are based on the username, User Agent and IP matching to deter direct socket access, meticulous user data filtering including the prevention of cross-site script hacking, and more. In addition, ExpressionEngine only allows data to flow though a master system file that imposes security checks like URI and path screening, and denial of auto-globals.
h) Editorial workflow. Create a professional editorial workflow with EE Custom Statuses feature. Define statuses like "first draft", "pending", "revision", "final edit", etc, in order to enable multiple authors to contribute to content.
i) Available already in four languages: English, Dutch, Italian and Spanish.
l) Image Resizing and Thumbnailing. ExpressionEngine lets you resize images when you place them in your weblog entries. Supported the three major image manipulation formats (GD, ImageMagick, and NetPBM).
l) And Much More...
The core ExpressionEngine system comes with many extras, like image-thumbnailing, a double opt-in mailing list, an SQL manager, a skinnable control panel, and more.
I have myself been using the 14-day trial of Expression Engine and I must say I am very impressed.
EE appears to be a great product though it is still at the beginning of its development cycle. As others have also noted Expression Engine feels to me like a more refined and polished version of Wordpress.
Here are a few questions I have submitted to Rick Ellis, the chief developer of EE, in order to help you understand better what Expression Engine is and how it differs from Movable Type/TypePad/Blogger and other popular blog/CMS solutions.
1) Is EE an advisable upgrade for people on MT?
We believe there are compelling advantages to using a PHP-based dynamic system over a Perl/CGI app. Much of the decision to switch, however, depends on what features you use in MT. No two systems share an identical feature set, nor approach data management identically.
My sense is that MT is more of a pure blogging tool, whereas EE is a system that attempts to blur the distinction between blogging and CMS apps.
If you are attempting to push the boundaries of the blogging medium, EE has more capabilities.
One simple example: In MT you are restricted to a fixed number of fields for your content. EE permits an unlimited number of fields per weblog.
2) Is there a safe export route to take content from MT to EE?
Yes and it comes with EE right out of the box!
3) How about from other popular blogging tools (Radio, Manila, Blogger, TypePad, etc.)
TypePad yes. We would like to support as many other systems as possible since easy migration is critical to user adoption.
4) What are the key features of EE that are ahead of what MT/TypePad offers?
EE is a 100% dynamic system. No page rebuilding. Our weblog interface allows much more customization.
Each weblog can have its own set of categories, statuses, fields, etc.
EE has better member management tools, particularly in its member group feature, allowing you to define with a lot of precession what each user of your site can see or do.
The template engine allows more advanced features like conditionals. You can even track how many hits each one of your pages gets.
There are lots of features that EE has, like a full complement of SQL management utilities, that MT doesn't.
5) Is there a feature comparison table of EE and MT?
Not to my knowledge. It's hard to compare any two systems purely based on features. The design goals and focus of each system is quite different, and the underlying scripting environment is different.
The only way to truly compare is to install both and use them.
6) Can you tell us more about the features relating to management of mailing lists?
The default mailing list is a basic opt-in type list. You get one mailing list. We will be offering an add-on mailing list in the future that permits you to run multiple lists.
7) Can RSS feeds be generated out of comments too?
Yes. You can design your RSS feed to output anything you want.
8) What about integration of Amazon books and other lists?
We plan to support the Amazon and Google APIs. Our goal is to make EE as compelling and feature-rich as possible, so you'll see support for these things in the not-to-distant future.
9) Spam management (comment-spam)?
We have several built-in spam prevention features (the admin can choose which ones to use):
- Form hashing. Every time the comment page is loaded, a unique hash ID is generated. When the form is submitted the ID is validated. Only one submission per page load is permitted.
- Duplicate data denial. No two identical comments can be posted.
- Comment time interval. You can set the number of comments per hour that can be posted by any one IP.
And of course you can ban IP addresses and require site membership to post.
There is no magic bullet with spamming, but I think we do a good job of limiting the damage that can be done.
ExpressionEngine is now available as a public beta.
Users who purchased pMachine Pro before February 8th, 2004 can purchase ExpressionEngine at a 50% discount.
Please visit the ExpressionEngine page for more info, and don't forget to read the FAQ page for details regarding the update process.
There is also a Hassle Free Trial. New users are offered a hassle-free 30 day trial. For only $10.00 you can also receive full support to install a full-featured demo version of ExpressionEngine on pMachine servers for you to try.
The Expression Engine full license costs USD $ 199.
Alternatively you can download the 14 day trial for free and try it on your existing hosting account.