expressionengine code in sublime editor

"Do they know what they are talking about?"

It doesn't matter if it's a plumber, surgeon or web developer - if you're looking to farm out some work the first thing you worry about is finding someone who knows how to do the job.

Checking referrals can help by hearing what past customers have to say. Googling them can help - are they asking or answering more questions online? An in-person interview can help - do they seem confident in their abilities?

But what if they just talk a good game?

The ExpressionEngine CMS from EllisLab is extremely flexible. You could build a given website in any one of at least a dozen ways. We're not here to tell you which of those dozen would be the best - but instead we offer the 10 items below as a way to help gauge whether your EE developer really understands the software.

1. Dynamic="no"

Every EE developer has had this moment. Template code looks perfect. Entries logged into the system. Date ranges all look right. Why isn't EE returning all the expected content?

The answer is often the dynamic parameter of the channel:entries tag.

EE is very URL-driven. What template EE uses and what content EE returns depends on what is in the URL. It can include:

  • A specific entry
  • Entries belonging to a specific category
  • Entries from a specific date range
  • Entries paginated in a certain way

EE "dynamically" reads the URL to know what to do.

Setting dynamic="no" turns off that behavior. What content is returned depends entirely on how you've coded the template.

This video is a bit out of date (older versions of EE used dynamic="off" instead) but the overall concepts still apply to recent versions of EE.

2. Parse Order

Many EE developers spit out the words "parse order" like they have four letters.

Do you remember the "order of operations" in math class? Given a math problem that includes addition, subtraction, multiplication and division there was a certain order you had to do them in:

  • Multiplication
  • Division
  • Addition
  • Subtraction

Same thing here.

ExpressionEngine has a specific order in which it executes (or parses) the code instructions you give it. Long-time EE developer and add-on creator Low published a .PDF summary of the EE Parse Order on his site.

The parse order isn't inherently evil. Most sites aren't complex enough that the EE Parse Order will be a significant headache for anyone. But your EE developer should at least be aware that there is a thing called the Parse Order.

3. Page vs. Entry

Most CMS are "page-based" CMS. They store content as a page. They return content as a page. A website is a collection of pages.

ExpressionEngine stores content in entries. An entry usually doesn't store all the content that shows up on one page (but it could).

ExpressionEngine isn't a page-centric CMS, but it can be made to work like one (using 3rd Party Add-ons). That isn't necessarily a bad decision, but your EE developer should be able to explain how EE works natively, and how moving away from that will benefit you as the site owner.

4. Structured Content

Over the past couple of years the content strategy and content worlds are suddenly all about structured content.

Structure is added to content by breaking it down into smaller chunks for storage - much like you would create columns in a spreadsheet.

Storing content in smaller chunks means you can be more flexible in how you present it. For instance, a user on a desktop may see more content than a user on a mobile device.

Structured content also means you can make content entry easier. If all article subtitles get marked up on the front end with bold and italic tags, you can put that markup in a template and apply it to all articles. The markup doesn't have to get stored with the article.

Long-time EE developers know all about structured content - EE has depended on it since EE 1.

EE stores content in an Entry - and each Entry comprises a set of fields that are setup by the EE developer. Each field stores a chunk of content.

Any knowledgeable EE developer should be able to tell you their process for creating a content model that they then turn into EE Channels, Fields, and Categories.

5. Top-Down vs. Bottom-Up

To start building a website in many CMS, you start by building navigation. You use some sort of tree-view and click around to create a navigational structure. Once that structure is in place, you click a node on the tree and enter content.

This is a top-down way of building a website. You start at the nav and build down.

EE is a bottom-up CMS.

You start by identifying the different types of content the site will have - your content model. You create Fields, Channels, Categories, and Relationships to represent that content model.

Once those structures are in place and content is entered, you build navigation that's (mostly) driven by the content in the system.

An experienced EE developer should be able to explain how the site navigation will be dynamic.

6. When to Use an Add-On

The ExpressionEngine market has a healthy number of third-party developers creating add-ons to extend or modify the core behaviour of EE.

Some of these are free. Some are commercial.

But all magic comes at a price.

With each installation of an add-on:

  • The back-end complexity increases.
  • The risk of a security issue increases.
  • The complexity of support increases.
  • The chance of a poorly-performing Control Panel increases.
  • The complexity and cost of updating the EE build increases.
  • The difficulty in bringing on a new developer increases.
  • The odds that you have abandoned code goes up.

An experienced EE developer will know the true cost of installing an add-on (free or commercial) and be able to make a case for how the value it adds overcomes the cost.

7. How to Evaluate Add-Ons

ExpressionEngine add-ons come from all sorts of places. Solo developers working from a basement. Agency developers scratching their own itch then offering the results to others. Developers making a business out of selling and supporting EE add-ons.

An experienced EE developer will know how to evaluate a given add-on for security, reliability, and sustainability as your site ages. They should be able to explain this process to you.

8. Themes in EE

You keep using that word.


Wordpress uses Themes.

ExpressionEngine uses Themes.

But an EE Theme is not the same as a WP Theme.

A Wordpress Theme stores the design for the entire website. It can be easily swapped out. There are vast theme marketplaces where themes are bought and sold.

ExpressionEngine uses Themes to store the code and presentation for the Wiki, for Member Templates, and the Discussion Forum.

EE also has an option during install to choose a Theme. But it's still not a WP Theme. Think of it more like a starter website, consisting of templates and content, not easily swappable once installed.

In EE the front-end design is captured in Templates, Snippets and Variables. Due to the flexibility of the content modeling, an EE site isn't easily "themeable" in the sense that WP is.

Themes just really aren't a thing in the EE world - so if you hear a developer "keep using that word" it can be a red flag that they are new to EE.

9. Multi-Entry Editor

* This functionality is no longer available in EE v3.x

So you need to close a bunch of entries. Or re-order the dates. Or maybe you just added more categories and need to assign a whole bunch of existing content into them.

Do you need to touch each entry individually?


In the EE Control Panel, choose Content > Edit > Channel.

You should get a screen with a table of entries that are saved in the channel you choose.

On the far right of the screen there will be a checkbox. Select a few.

Now scroll to the bottom of that screen. Next to the Submit button is a drop-down. It should default to "Edit Selected".

Click the Submit button.

What comes up next is the Multi-Entry Editor.

From here you can edit the title, date, status, etc. of the entries you chose. You can't edit all the fields, but these are often the handiest ones.

Now go Back in your browser. In the drop-down that said "Edit Selected" choose "Add Categories" instead and click Submit.

This is the Multi Entry Category Editor - which works great when you need to assign categories in bulk.

Experienced EE developers should know of these time-saving aspects of the EE Control Panel.

10. Nancy Sinatra is to Blame

If you've ever used ExpressionEngine you can thank Nancy Sinatra. Yes that Nancy Sinatra.

EE founder Rick Ellis had Nancy as an early website client. She was rather demanding about the number of changes she wanted on a weekly basis, so Rick wrote a little tool initially called "Power Trip", which became "pMachine Pro", which led to ExpressionEngine.

OK, so most EE developers probably don't know that. Don't hold it against them just because we do.

How Did They Stack Up?

How down with EE is your developer?

Not much? Then give us a shout.