Our Diary

A Brief Introduction to ExpressionEngine

Sunday February 8, 2009

Welcome to a brief introduction to ExpressionEngine, which we’ll also call “EE”.

If you’re a website designer or developer, you’ve probably heard about some popular Content Management Systems like Wordpress, MovableType, Drupal, or Joomla.  Our purpose today is not to compare these well-established frameworks to EE, but to share why we are enthusiastic about EE and how we believe this CMS maintains a strong balance of features and flexibility for front-end designers and back-end system developers alike.

Whether you’re a systems web-developer or front-end designer, we believe ExpressionEngine will help you create a web-based project with the needs you seek and in the budget you’re given.

So let’s get started.



While there are many options when choosing a CMS, most tend to make the lives of either the design team or the development team easier, but rarely both.  This is one reason websites built on a limited budget may look great but have only simple features, or have nice functionality but look similar to other sites.  Have you ever spotted a website and thought, “Hey, this looks like it’s built with <insert CMS>!”?  Even though the design may be customized, the layout and structure of components throughout the website often reveal the underlying platform.



EE is so flexible, both for implementing the design you want and for enabling the features you need, that creating a truly customized website that’s perfect for your audience is actually fun.  Both developers and designers have the flexibility to work together to create the website they envisioned, without major CMS-imposed restrictions.



There are already some great websites out there you’ve probably seen and never new were built with ExpressionEngine.  High-profile projects like President Obama’s Change.gov, product-design firm IDEO’s company website, and the United Nations’ Japan Information Center were all built with EE.  Community and web-service oriented projects like Hitotoki also run on EE.  The list is impressive and growing, and you can always see more on the EE forums.



So why are all these website designers and developers getting so enthusiastic about ExpressionEngine?

One reason is that EE is built from the ground up to work with ‘modules’, ‘extensions’ and ‘plugins’, so that adding custom features never feels like a hack.  And you can install updates to EE’s core codebase with no fear of breaking your site or losing custom features.  We’ll briefly explain what we mean by ‘extensions’ and ‘modules’.



Modules are feature-sets that are large enough to require their own administration-style management.  Common modules include Comments, Wiki, Forums, and Mailing List.  Each of these have an administration section where editors can moderate submissions, create new topics, and assign new users if needed.  These administration areas are integrated into the main EE control panel when the module is installed.



Extensions are smaller feature-enhancements that allow you to add functionality to existing interfaces.  For example, you may want to add captchas to comment forms, or twitter or flickr feeds to areas of a website.  On the control panel used by editors and administrators, you might want to change the textarea markup interpreter or add custom publishing features.  There are many extensions already created by the EE community, so you can usually find what you need - but with a little programming experience, extensions can be easily created and are typically no more than a single PHP file.

Now let us explain a little about how EE handles page content.



At the heart of ExpressionEngine is its straightforward templating engine.  When designing a website, many sections tend to be reused and / or repeated.  EE saves development time by assigning custom tags - defined by a variable name enclosed in curly braces - to some chunk of text or page content.  When the page is called-up, EE replaces each occurrence with what it represents.  The simplest case is a blog post, with a title and some body of text.



Of course, it’s easy to add custom tags for custom data.  After defining the type of content and assigning a variable name, you simply call-up the data in a page with the tag-name.



Splitting up regularly-used parts of a page into their own templates and embedding them into other templates is also easy.  This time we use the ExpressionEngine embed-tag and pass the sub-template’s name as a parameter - meaning we can re-use the same code many times throughout different parts of a site without repeating ourselves.  The viewer of course sees just a single page, but for the developer and designer this makes organizing page content easier and the entire development process much more efficient.



Since, ExpressionEngine relies on open source technologies including MySQL and PHP, you can also embed custom PHP code directly in EE templates if the need arises.



By combining ExpressionEngine’s tag syntax with its page-template flexibility, designers have lots of flexibility in content layout and developers can reuse code easily and efficiently.

Much of this is not new of course, and there are other CMS frameworks that have similar sets of features as ExpressionEngine.  What’s more, ExpressionEngine costs money - so what’s the benefit of paying when there’s a free option that might be sufficient?



While every new system has a learning curve, our experience with a variety of other frameworks led us to conclude that ExpressionEngine has a comparatively short learning curve.  When you build a project with EE, you can focus your and your client’s time on the important strategy, design and interaction phases of the project.  Actual development times can be much shorter, especially when it comes to customization.

As this slide tries to express, another way to put it would be “everything else being equal, given a project done with say an open-source CMS that may take 5 days, you might spend one day developing it in ExpressionEngine and the rest of the time on holiday.”



When you calculate the costs of your own time and factor in the time (and sanity!) savings EE provides, paying for a license is actually a net gain.  What’s more, there’s a free core license of ExpressionEngine you can experiment with.  This free version does not include many of the useful modules such as for mobile blogging, photo gallery, and wiki, but will give you a sense of how EE works.

You can see details on the 3 difference licenses.



This concludes our brief introduction to ExpressionEngine.  If you’re considering a project and are looking to try a new framework, we hope you’ll consider ExpressionEngine and join its enthusiastic community.

blog token image
Comments Commenting is not available in this weblog entry.