Obligatory Twitter Feed

The Good Lab




What is ExpressionEngine and why do we use it?

Wednesday, November 30th 2011

A common occurrence when bootstrapping a project is informing clients that we use a content management system called ExpressionEngine (EE), and explaining why it is a great tool for their project. With this article, we wanted to clarify what EE is, its capabilities, its draw backs, and situations in which a project could benefit from its use. This article will hopefully be beneficial to everyone in the EE universe: designers, developers, content editors, site administrators, and also to clients or those wanting to start the process of building a website.

What is ExpressionEngine?

Content Management System: software or a group or suite of applications and tools that enable an organization to seamlessly create, edit, review and publish electronic text.

Using very generic phrasing, ExpressionEngine is a commercial content management system allowing its users to create, update and publish data to their website. EE fills a common request from clients who say “I want to be able to update and manage the site myself, without having to know how to write code.”

ExpressionEngine imposes few limitations to the structural markup of a website, meaning it is very straight-forward for designers and developers to integrate static HTML templates with EE. ExpressionEngine has a back-end administration section which presents administers with an intuitive interface to manage a site’s content. Other built in features include comment management, user management, file upload utilities, and performance settings, which can facilitate the creation of a robust modern website.

What types of sites can use ExpressionEngine?

EE can help with the build of nearly any type of website. From small static sites with two or three content-heavy pages, to robust e-commerce platforms with large member-bases and the ability to sell and manage products. The range of use-cases are really endless, and with EE’s flexible architecture, there is really no limit to what EE can do.

That being said, it should be mentioned that EE is not a replacement for a web application framework, and should probably not be used to create the next Facebook or Twitter. Similar to web application frameworks (Ruby on Rails, Codeigniter, Django, etc) EE has many conventions developers need to follow while building a site; however, unlike web application frameworks, EE takes it one step further and provides an administration Control Panel which is used to create, update, and delete content from the site. This further step of abstraction makes EE extremely powerful, but it does require that data be stored in a very systematic and non-configurable way. If your project requires a data model that needs to be extremely customizable, you may want to head down the web app framework path instead.

What EE does, and does extremely well, is to provide an interface for clients to update their website, without the need to manually make code adjustments. Where many content management systems are built around a specific publishing paradigm (blogging, e-commerce, event promotion, etc..) ExpressionEngine is agnostic to the type of content. It organizes any type of content, in any manner you deem appropriate.

How much does EE cost and why should I pay for it?

ExpressionEngine costs $299.95 for a commercial license, $149.95 for a non-commercial (i.e.: non-profit) license, and $99.95 for a freelancer license (i.e.: portfolio website).

The main reason you should pay for EE is because its cheap! For all of the capabilities ExpressionEngine offers, the $300, price-point is outstanding. Building a custom content management system for any content heavy site would not be cost-effective, and in most cases if a client is opposed to paying the $300, it almost makes sense to pay the fee out of pocket, as EE will save you time and energy.

Some familiar with other CMS may argue that there are others available for free. This is true; however, we find that adding a price point to the software actually makes the software more reliable, as the creators of ExpressionEngine (Ellislab) need to be accountable to their paying customers. The commercialization of the platform also gives developers a chance to make profits from building third-party software extensions to EE. This commercial third-party software also benefits in a similar way because they too are accountable for their software.

Who knows how to build EE sites?

The EE community is very large and growing fast. If you are looking for help with the build of an EE site, your first stop should obviously be The Good Lab; however, there are abundance of other EE’ers out there who can help you. A good place to look is http://director-ee.com/ which, catalogs EE designers and developers from around the world.

Can EE do (insert custom piece of functionality)?

Often times we get approached by clients with the need to build a very specific piece of functionality for their site. Many times that piece of functionality is not available with an out-of-the-box instance of EE. In these cases we let them know about the ability to extend EE using what are called Add-Ons. An EE Add-on is a piece of third-party software, which is not officially packaged with ExpressioneEngine. EE was built with the idea that many sites will need to be able to extend EE’s capabilities and that there should be an easy way for developers to create Add-ons which are able to leverage the Control Panel interface already provided with EE. Add-ons are either commercial (you have to pay to use them) or are free. In most cases, the commercial add-ons bring a very robust piece of functionality into EE, and are worth the money you pay to licence the software. Some examples of Add-on functionality could be to help EE better manage calendar events or the ability to track and manage products of a store. In the event that you have a piece of functionality that is not supported natively by EE and there are also no third-party add-ons that can fill the gap, there are plenty of developers who are able to create custom Add-ons for you. Again, obviously The Good Lab would be a great choice.

Any points of contention?

Yes, a few:

  • Although ExpressionEngine is great at allowing site owners to update content on their own, EE is a platform you will want to have setup by someone who knows what they are doing. Because of EE’s robust feature set, there are a lot of settings to manage and other nuances you will want to have tweaked to optimize your site’s performance. Typically these minor customizations only take a short period of time, but they are still very important to the site’s build and should not be overlooked.

  • EE’s template tag system is good, but not great. In order to place dynamic content into your site’s html templates, EE uses a set of template tags to output the data onto the page. EE has a very robust and full set of template tags, but on a few occasions we felt slightly limited. In these specific occasions we were able to create custom add-ons, in which we created new template tags to output exactly what we needed. Unfortunately, the process of building an Add-on is fairly technical and something you would want an EE developer to build.

  • EE’s site administration section (known as the Control Panel) is somewhat confusing. Out of the box the CP is pretty ugly, and without some guidance someone might be pretty confused on how to manage the content on their site. Again, this is an area where having an experienced developer on-board would be beneficial, as they should be able to customize the CP to fit your needs, and make the experience of managing content as intuitive and enjoyable as possible.

Hopefully this overview has given you some insights into ExpressionEngine and why we use it here at The Good Lab. As with most software or technology, people have varying opinions on the software itself or how they use it. I cannot say this summary is indicative of the thoughts of the entire EE community, or mentions all the benefits or shortcomings of EE. If you have any questions regarding EE or want to know more about how we use it, please do not hesitate to reach out.

's gravatar
Lois 12.12.11

I’d suggest admin addding a “google+” button for easy share.

Bryant's gravatar
Bryant 12.5.11

@Luke Thanks for the comment!

Yeah, as with any new tool, its always hard to make the jump.  EE is an outstanding platform and definitely worth the effort of learning its intricacies, to benefit from its powerful and flexible architecture.

We’re in the process of writing another article on some key-items to understand, when getting started on your first EE project, so keep an eye out for that.

Thanks again!

Luke Jones's gravatar
Luke Jones 12.5.11

Thank you for the excellent article. I work in a digital studio just outside Birmingham and we’ve always used WordPress for clients who need a CMS and, to be honest, we’ve hit a wall because we’re really stretching it to the limit. ExpressionEngine is the next obvious step for us but it’s just making the risk of saying “yep, we’ll use it for this project!”

We made the same jump from Magento to LemonStand earlier this year and, whilst we’re still learning, we don’t regret it at all. I think the only way to learn something well is to make (and fix, I hasten to add) mistakes which we make during the development process of a website.

So, once again, thank you for the excellent article. Hopefully, it’ll be a shove for myself and the development team to get into working with ExpressionEngine rather than other, perhaps unsuitable, platforms.

Scott's gravatar
Scott 11.30.11

Fantastic article! Very clear and concise breakdown of ExpressionEngine and its pros and cons. I’ve used EE in conjunction with the Good Lab’s development prowess on several projects now and have to say it’s been super easy to update and manage content once the CP is set up. Good Lab was also able to customize several plug-ins for features that didn’t come standard which was extremely helpful. Thanks EE and TGL!


Commenting is not available in this channel entry.

Article Categories

Article Tags