On July 12, EllisLab finally released EE2.1, the first non-beta version of ExpressionEngine 2. This is part two of an indepth review of the latest version, including a look at the engine, add-ons and what's gone.

Look and Feel

Part one of this review covered the look and feel of ExpressionEngine 2.1, including:

  • A new control panel
  • Improved navigation
  • File Loader
  • Content Entry Screen

You can read the details in: ExpressionEngine 2.1 CMS Review, Part 1


Of course, these cosmetic changes don't touch the biggest shift of all: from a private code base to the CodeIgniter framework. What's that all about?


CodeIgniter is an open source Web framework -- a set of PHP functions and libraries that is supposed to make building Web apps easier -- written by EllisLab. It's been available since 2006, and in the past four years, a rather significant community of developers has been drawn to it.

CodeIgniter has bits of code that make it easy to do things such as: send emails, log someone in and out, parse a template, validate forms, paginate data, deal with dates, talk to databases and handle sessions.  All these things are great building blocks for a content management system, and in theory, having ExpressionEngine built on CodeIgniter means that the basic functionality of CI will grow via open source osmosis, while EllisLab can bring design, UI and particular functionality into ExpressionEngine and charge for their additional ease-of-use, support and steady growth.

It's early days to see how this is going to pan out, but both communities of developers seem optimistic about the future, even if fruits of the tree have not yet bloomed. CodeIgniter itself has not seen a new release since September 2009, and it's likely that the work on EE 2 both caused that delay and yet also will give the next version of CI a greater breadth and depth of functionality.

Switching to CodeIgniter has caused the install size of EE to blossom, to 17.8MB / 1,890 items, from 9.4MB for 512 items.


EE grew from a blogging tool into a CMS, and the base unit of the system was the "weblog."  EE 2 no longer self-identifies as a blogging tool, and now calls these things "channels" instead. All the terminology throughout the system is updated to ditch the old "weblog" term -- everything from the template tags to the database tables themselves.

The upgrade process makes this change automatically for most sites, but add-ons and people who do custom code may need to adjust their usage in order to upgrade.


  • It now uses UTF-8 as the standard and only character set.
  • It introduces a new type of variable, "snippets," which are can contain dynamic code, unlike the EE 1.x's global variables, which could only contain static values.
  • In a big change if you're an SEO-expert, EE no longer puts a trailing slash on the page URLs it produces. This may also affect traffic reporting comparisons.
  • Many of EE's tag attributes were "cleaned up" to use the same pattern of "yes" to turn on something and "no" to ignore it instead of some more outlandish attributes in 1.6.9.
  • If you liked EE's debugging output before, you may love the expanded "Output Profiler" that you can spit out at the bottom of each EE page now; it's much more comprehensive and includes session variables, form data, HTTP headers and more.


At a simple level, EE 2.1 is going to be better for building something, today and more future proof for your site going forward. It will handle advanced character sets, you can customize the entry screens for different levels of editors, and it's going to be easier to add or integrate third-party development on an EE site now.

For businesses on an existing EE site, there's no immediate need to upgrade, because other than the file manager, chances are your existing site does everything that EE 2 is going to do for you. However, that's going to change quickly. Already, there are EE2 only add-ons, and EllisLab will likely be adding new functionality soon, that won't ever be in the 1.6 product.

That said -- in my testing, it was pretty easy to get used to the live updating of the edit page and the autosaving of entries; I missed them immediately when I went back to 1.6.


Support for IE 6 in the control panel is gone: This means you can design your site to be IE 6-friendly, but you can't administer your site with that extremely outdated browser.