ExpressionEngine: One Year Later

It’s a rare thing when a software package has so much impact on your life.
ExpressionEngine Logo

It’s been over a year since I made the switch to ExpressionEngine as my CMS of choice for both personal and professional projects (read about the switch here). And suffice to say, I couldn’t be happier with the switch.

It’s a rare thing when a software package has so much impact on your life. I can honestly say that EE has allowed me to reach new career heights over the last twelve months or so, to become better, more productive, and more profitable.

I’ve been able to tackle projects that would otherwise have been beyond my resources. EE has allowed me to develop websites more efficiently and thoroughly. And those websites more effectively meet client demands and specs.

So, just how does EE do that? What are its “killer features”, its primary selling points for me? Here are a few:

The ability to run multiple weblogs at the same time

Granted, this is not something that is unique to EE. However, I think EE takes the concept of weblogs to some interesting new heights.

However, some folks get confused by the term “weblog”. A better way to think of a “weblog” in EE is as a section, or better yet, a generic container for your website’s data. How you shape, structure, and present the data in these containers is up to you.

Custom fields

If there was any feature that truly “sold” me on EE, this would have to be it, as it overcomes an issue that I have with many other publishing packages out there.

Basically, most content management systems out there force you to organize your data according to their layout. Which typically means that you have to squash all of your data into a handful of predefined fields (like “Subject”, “Body”, and “Extended Text”).

Some packages, like WordPress, do allow you customize that somewhat with custom fields, but I’ve found the implementation to be rudimentary at best. EE, on the other hand, has a very powerful and flexible method for creating groups of custom weblog fields.

These allow you to customize your website to fit your data, not the other way around. This is especially nice if you’re anal like me and want to keep your data organized right down to the last jot and tittle. It also makes it easier to develop websites, and can make it easier and more intuitive to manage and administer the website.

The “Query” module

EE is modular in nature; all of its major features and functions are handled by various modules. For example, there’s a “weblog” module for handling website entries, a “photo gallery” module for managing and displaying photo galleries, an “RSS” module for handling newsfeeds, and so on.

One of my favorite modules is EE’s “Query” module, which allows you to create your own MySQL queries to retrieve and display your website’s data. I don’t use it all that often, but like a Swiss army knife, there are those times when it’s a real godsend.

For example, there are times when I know exactly what piece of data I wish to retrieve, and therefore I know what query to use. I could use one of EE’s default tags, such as {exp:weblog:entries}, to pull out the data, but that would be overkill and less efficient in this case. That’s where the “Query” module comes in real handy.

EE makes no assumptions about the websites I’ll create

This isn’t so much a feature as a philosophy held by EllisLab (the folks behind EE). However, it impacts so much that I want to include it here.

Essentially, this means that EE doesn’t assume that I’m going to use it to build a blog, a corporate website, a portfolio, or any other type of website for that matter (the first two items on this list are results of this philosophy). The upshot of this is that I can use it to build practically any website I want, in the way that I want to, without EE’s functionality or features getting in my way or forcing me down a path that I don’t want to take.

This also means that there’s no one right way to build a wesbite in EE. Granted, some ways are better than others, but ultimately, EE allows me to build a website in the way that I see fit.

Having been a developer and programmer for many years, I know how much of a challenge this can be. On the one hand, you want to give your users a lot of power and capability, but on the other hand, you don’t want to get in their way. I’ve found that EE walks that fine line very well.


These days, having a community of developers, programmers, and users surrounding your web software is a must-have, and EE has a great community. This makes it incredibly easy to get help when you’re stuck, learn plenty of cool new techniques, and in the interests of good karma, offer your own advice and expertise to help others.

The EllisLab folks frequent the forums as well. It’s not uncommon for the company’s vice president or one of the lead programmers to chime in on the forums, making suggestions, troubleshooting, and listening to user’s requests.

What’s more, the community is always coming up with additional modules, plug-ins, and extensions to make EE an even better platform. Folks like Solspace, Mark Huot, and Lodewijk have all contributed incredibly useful add-ons for EE.

Indeed, so many add-ons are being created that EllisLab recently instituted a certification process for third-party add-ons.


You can have the greatest software, CMS, or platform out there, but if folks can’t figure out how to use it, it’s worthless. This seems like such a no-brainer, and yet it’s all too often overlooked.

Put simply, EE’s documentation is second to none. It’s incredibly indepth but never needlessly complicated and it’s written in a very concise and practical manner. What’s more, users can also contribute their own notes, tips, techniques, workarounds, and best practices.

Beyond the manual, there’s also a knowledge base and a wiki that are packed with helpful tips and articles that touch on working with third-party systems, optimizing and customizing EE, and SEO, among other topics.

All of that being said, I realize that no system is perfect; there’s always room for improvement. And I know that EllisLab is hard at work on EE 2.0 even as I type this. So what would I like to see in the next major release?

Improved Template Management

There are several different kinds of templates in EE. There are your website templates, which contains all of your site’s (X)HTML markup, and also help define the URLs that are created by your site. However, there are also templates for discussion forums, the member profile manager, and various “specialty” templates (e.g. e‑mail notifications, etc.).

Right now, managing all of these templates can be a chore, as they’re spread throughout the control panel. I’d love to see this streamlined somehow, so that all of my site’s templates can be consolidated and more efficiently managed.

Streamlined Control Panel

This is somewhat related to the above item. EE is an extremely powerful and flexible system, but that comes at a price. Specifically, the control panel, which can be daunting and tiresome for even experienced users.

I always tremble a bit when turning an EE site over to the client, because I know that I’m going to get a rash of e‑mails as soon as they start making their way through the CP.

EE currently gives you some control over who can see what in the control panel, which is good from both usability and security perspectives. But I’d like to see it be taken even further.

I’m not asking for EllisLab to remove any functionality. However, I do think it could be organized and laid out more efficiently.

Better support for moving entries between weblogs

This is somewhat possible right now, so long as the weblogs in question use the same set of custom weblog fields. However, if you’re dealing with weblogs that use different field sets, you’re out of luck. You either have to try some tricky database wizardry (which may not always work) or re-enter the entry by hand (which is always a pain in the butt).

I’d love for there to be some sort of interface whereby you select which field(s) in the new weblog correspond to which field(s) in the old weblog, with EE handling the transfer behind the scenes.

Improved File Upload Manager

When I first started using EE’s file upload manager, which allows you to add images, PDFs, and other files to your site entries, I thought it was pretty decent — especially when compared to Movable Type’s, which was what I was coming from.

You can create multiple file upload directories and assign permissions to each of them, as well as various other parameters (e.g. allowable file types, maximum file size, etc.).

Which is fine when uploading new images. But when you want to add a previously uploaded image to an entry, the manager stumbles a bit. Right now, it just gives you a list of filenames to search through. I’d love to see this improved a bit, with better browsing, searching, and viewing functionality.

Of course, that’s all easier said than done, and I’m not one whose going to be the doing. Mind you, none of the above are dealmakers or dealbreakers. I’d be perfectly content using EE in its current incarnation for a good long while. But, being the geek that I am, I can’t wait to see what Rick Ellis et al. have up their sleeves for future version(s) of the platform: I have a feeling it’s going to pretty dang cool, whatever might come.

Read more about ExpressionEngine.
If you enjoy reading Opus and want to support my writing, become a subscriber for $5/month or $50/year.
Subscribe Today