Web developers love ExpressionEngine, and for many reasons. But most would put one single thing at the top of their list: Freedom!
There is always one more feature you or your customer would like to implement. And because ExpressionEngine lets you create and design with total freedom, those features are always possible.
Below are a few examples of what makes ExpressionEngine the best and most versatile CMS and how it is used in the real world.
Note: IC360.com just posted a great article talking about many of the same points that I cover below. It is well worth the read.
Table of Contents
The freedom of Bring Your Own Code (BYOC)
Unlike other CMS’s, ExpressionEngine gets out of your way. You design your site with straight-up HTML and CSS and then add tags that pull your content to make the site dynamic.
Its whole philosophy is Bring Your Own Code, which means you get a blank canvas so you can design your site exactly how you or your client want it.
ExpressionEngine is the framework that supports your project, it doesn’t impose rules or limits on your creativity.
BYOC is what makes ExpressionEngine so powerful and flexible, but it can confuse newcomers to the platform. Because the one thing you won’t get are pre-fabricated, one-click install-and-forget themes that you can switch between willy-nilly.
Some other CMS’s have this, so does WordPress, but one-click theming means lots of compromises and less freedom for the developer. It would, for example, require imposing a lot of rules (restrictions) on the templating engine, forcing the designer to do things a certain way.
The freedom of content
One of the things that make ExpressionEngine so incredibly flexible is the fact that it doesn’t make any assumptions about the type of content you use with it.
You can use any content you like and display it using channels, relationships, and custom fields. Plus, the tags you use to display your content have lots of parameters, variables, and conditionals available to them. That means you can tailor what data the tag will pull, under what circumstances it will pull them, and how it will present those data.
Take a look at the most used tag in ExpressionEngine, the Channels Entries tag. This tag will do it all. If the data exists, it will let you use them exactly how you want. This flexibility is deeply engrained in virtually all tags and throughout ExpressionEngine.
You can run multiple sites on multiple domains from one ExpressionEngine backend. You can even pull data from external sources like existing databases, a previous CMS or user forum, or even CRM and ERP systems, as we will see below.
Multiple sites on one ExpressionEngine install
The built-in Multiple Site Manager (MSM) allows you to run many sites on many domains, controlled by one ExpressionEngine backend. You install ExpressionEngine on one server, enable MSM, and then copy the admin.php and index.php files to the other servers. That’s it!
From the ExpressionEngine Docs:
Think of the Multiple Site Manager as converting a one-building schoolhouse into a University campus.
The student body (Member database) is campus-wide but every department (Site) has its own building (templates), its own way of doing things (preferences), unique curriculum (channels), student lounge (Site-specific forums), and rules about what students can do (Site-specific Member Role permissions).
Any department on Campus can take advantage of the school’s resources (Modules, Plugins, Extensions).
So you can have totally different sites running from one ExpressionEngine install, making administration, updates, and backups a snap. That way, one or more people can be responsible for keeping everything up-to-date, ensuring that multiple sites are consistent across a large organization.
ExpressionEngine in the corporate world
Many large organizations use ExpressionEngine for the reasons mentioned. But also because it scales incredibly well, because it has a very robust and granular user/role/permissions system, and because it integrates easily with existing systems and data.
Years ago, I was part of a team that used ExpressionEngine to pull data directly from an Ingres database to a company intranet, creating lists of products, customers, and sales. The Ingres DB was the backbone of a decades-old, custom-built, terminal-based ERP solution that we made ExpressionEngine talk to without issue.
The whole intranet eventually ran on ExpressionEngine, pulling data from everywhere in the old ERP database, making the data a lot more accessible to the entire company. Before that, the IT staff spent 40% of their time writing and running custom SQL jobs to give people access to data. And more often than not, delivering the results on paper!
After we connected ExpressionEngine to the Ingres DB, everyone could pull up-to-date lists anytime they needed. We eventually only used the old CRM to enter data, which it was great at, because those who did nothing but enter data knew it in and out. ExpressionEngine replaced it for everything else.
What are your war stories?
These are just a few examples of why we love ExpressionEngine. But we would really like to hear from you too, whether you are considering ExpressionEngine, implementing it right now, or if you’re a long-time user.
- Why are you looking into ExpressionEngine, or why did you choose it over other CMS’s?
- Have you had terrible experiences with other systems?
- Do you have interesting, unusual, or fun use cases?
- Times when it saved the day?
- Or war stories from the corporate or government world?
Then please send us an e-mail via the link in the sidebar or post in the comments below.
If you send us an e-mail, we would love to post your story in an update to this article. We will, of course, ask first and promise to keep your name and organization anonymous if you so wish.
And if you feel like writing a whole article or guide on the subject. Or on anything else related to ExpressionEngine and web design, we would love to hear from you too.