Role-based user permissions (32)
Admin section (31)
Code quality / cleanliness (31)
Availability / breadth of extensions (31)
Entry-level set up fee?
- No setup fee
- Free Trial
- Free/Freemium Version
- Premium Consulting / Integration Services
With CodeIgniter, an agile, open-source framework, web professionals can use ExpressionEngine to build websites and applications. The software is meant to be useful for companies of any size and private individuals as well, and to that end it is highly customizable, and implementation may vary. Like many content management systems, various add-ons will determine what the system does, though the core features are somewhat broader than similarly classed free offerings. The Multiple Site Manager allows a user to create and manage multiple sites from a single ExpressionEngine installation. Nexcess (a partner) provides a hosting environment for an ExpressionEngine-powered website.
Frequently Asked Questions
- Content is not constrained or controlled by set templates, unlike other CMS.
- Gives you total control over the look and feel. You decide the design direction and what your visitors will see.
- The UI is sublime. It's a pleasure to configure and work with.
- The expandability, flexibility, and customization of the entire system is unsurpassed.
- The only issue I have with ExpressionEngine is the cost of official support.
- Wide range of fields types - allows collection and display of different types of information (date, image, multi-relation, etc.)
- Security. Excellent security record, does not face hacking risk like WordPress.
- HTML-agnostic templating system. Write whatever HTML, JS, CSS you want, and then integrate it into ExpressionEngine's templates.
- UI is still inferior to Craft CMS.
- Third-party add-ons are required for certain features that ought to be built in to the product.
- Vendor has fumbled support for its developer network.
- Editor contains preview windows to check work before saving changes.
- Each section has a WYSIWYG which instructs users on the dimensions needed for images.
- Sometimes, I'm unable to pull from the PDF folder when trying to link a file in the WYSIWYG.
- Content boxes in certain templates do not expand, which makes it difficult to navigate where the cursor is and keep your place while editing.
- The blog tool was decent.
- Managing users was easy.
- It was difficult to alter functionality in the admin section. For example, we needed multiple-file uploading and in order to do this the templates had to be directly altered. This direct manipulation of templates makes it hard to upgrade the version without losing custom changes. Same goes for implementing custom file storage.
ExpressionEngine's affordability and flexibility have allowed us to continually enhance our web presence and use the system to build several stand alone web applications.
- Extremely flexible and extensible
- Fabulous user and developer community on Twitter, Facebook and Slack Chat.
- Wide range of third party add-ons that solve many challenges. Ranging from calendars to special field types.
- Cost of entry is extremely affordable compared to other commercial solutions.
- Runs on any LAMP server setup. Though, larger installations will require something with more horsepower. We run on a load balanced, 3 server setup.
- Running Local, Staging, and Production environments takes a bit of work.
- The Control Panel set up and theme are not great. We usually swap out the theme. Though once you become familiar and set up quick links, it becomes much easier to use.
- It can be a little resource heavy on large, high traffic sites without some additional caching.
Satdaya is a creative services firm that includes web development among our services. We recommend and use ExpressionEngine to our clients when their projects and IT needs require more flexibility than what most other content management systems can offer. D&D Technologies is one of those clients, and they have been with us and using Expression Engine since version 1.x! We have also built our firm's project management system with ExpressionEngine, and our software as a service venture, Eventida, also uses it.
- Content structuring. You can set up channels and fields to hold just about any kind of information imaginable; text, images, videos, numbers, code, etc. You can structure this information any way you want and in any order. You literally create your own information database just the way you want it using a clear, easy online interface.
- Template system. Utter freedom. Need I say more?
- Exensible. There are a lot of add-ons, extensions, and other external modules that extend the core functionality of ExpressionEngine. Need a user management system? Check out the User module at http://solspace.com.
- Big learning curve! In my opinion, ExpressionEngine is not really for the inexperienced, be it users or developers. Clients who aren't web-savvy have a hard time picking up the backend, and end up paying more for a custom front-end control panel to fit their project needs. Developers have to learn the templating language. It's not that complicated for someone who is experienced with HTML/CSS, at least, let alone a programmer, but still expect to spend weeks, if not months, learning all the ins and outs.
- It's not free or cheap. A license for the core ExpressionEngine software is currently $299 a pop. Premium add-ons can average between $20-$200 for their licenses, but there are also many add-ons that are free. https://devot-ee.com/ is the premier marketplace for ExpressionEngine add-ons.
- A relatively small user/developer community = above-average contractor rates. ExpressionEngine experts hard to find and do not come cheap, and understandably so. ExpressionEngine is a highly specialized and advanced CMS. Due to the price barrier, ExpressionEngine is nowhere near as popular as free WordPress or Joomla!.
- Poor software updating system. ExpressionEngine is NOT WordPress where you get pushed core and add-on update notifications, and apply them with a few clicks. Updating ExpressionEngine requires a developer who can manually go in, backup everything, upload specific files, and otherwise follow specific procedures that require time and expertise. Due to the changing and hazardous nature of the Internet, it's imperative to keep your software updated - so this makes ExpressionEngine not ideal for projects with small budgets.
- Large community base provides excellent support when needed
- Extensive catalog of modules to expand capabilities as needed
- Built in management of member profiles and permissions saves time
- Can be too cumbersome for smaller projects, takes time to pair down the built in functionality so our clients have to sift through unused features
- Large queries take significant processing power, recommended use of a cache module to store this data and speed up page load
- Backend can be overwhelming for clients, lots of things to manage in the control panel
- No way to repeat custom page fields or groups of fields, meaning page layout must be pretty established and not customizable from the control panel
- Flexibility is a huge aspect of ExpressionEngine, other CMSs lock you into certain ways your site must be built. You write the templates and write the way you want the website you are building to function with ExpressionEngine.
- Creating editable content in ExpressionEngine is easy, allowing you to control and make your website more dynamic.
- The plugins for ExpressionEngine are wonderful, I have never had a request for integration from a client that I can't find a plugin for ExpressionEngine.
- ExpressionEngine would be even better than it already is if it had a page editor where you could see your page and edit the content on the actual page, some clients prefer this method when moving from online website builders.
- Although there are add-ons for backup, I would like to see a native backup feature for ExpressionEngine.
- The number one thing that I think ExpressEngine allows for is its flexibility. I always tell people there isn't anything that it can't do and that proved true in this case as well. For instance, we needed a few levels of membership for providing access to different areas of the website and ExpressEngine handled this without issue. In addition, some of the library resources are accessible based on that membership group.
- One of the things that I love about ExpressEngine is that it doesn't come with any expectations about your website look/feel/code. We created the layout and coded our pages, then plugged in the necessary tags.
- ExpressEngine is a very secure system out of the box, and there are numerous tips and guides to help you further secure the back-end. That was an important feature for us.
- The ExpressEngine community is probably one of the greatest strengths. There are so many great people involved who are willing to lend a quick hand or provide some advice to help out.
- For me, one of the greatest strengths of ExpressionEngine is also one of their weaknesses. There are so many add-ons available (some free, some not) for ExpressionEngine to allow you to do just about anything you want. However, the more add-ons that you use the more you have to deal with when performing updates. For instance, is the add-on compatible with the new version of ExpressionEngine - or even another add-on? What if that add-on gets abandoned by the developer - is there another that can perform the same functionality?
- I think that ExpressionEngine needs to offer more out of the box than it does. Yes, you can get add-ons for just about anything but this adds to the cost. I have a list of add-ons that I use on almost every site which can raise the cost of getting started with a new site by $100-300. So add that to the cost of a license and you're at $400-600 and you haven't even started working on it yet. For instance, I shouldn't have to buy an add-on to allow me to customize the menu for my end-users.
- The membership management feature is seriously lacking. Fortunately, there are add-ons (for an additional cost) to allow you to manage things better.
- ExpressionEngine offers a customizable publishing tool. Each channel can be customized for its specific needs.
- ExpressionEngine offers simple APIs that allows for many add-ons to be developed.
- ExpressionEngine's short codes make it easy to accomplish advanced coding tasks.
- PHP parsing was always an issue when creating templates.
- Upgrading ExpressionEngine was a difficult task. Many times I had to run the install more than once or recover from a backup.
- Disabling add-ons and modules sometimes resulted in major issues with the database.
Do you need a tool that will allow the client to create custom publishing fields?
- ExpressionEngine has no preconceived ideas about how your content should look or what code is generated.
- A robust template engine makes integrating designs and content a breeze.
- The control panel can be customized to control what content managers have access to.
- The upgrade process can be tedious if your site uses more than a couple of add-ons.
- Back ups must be managed manually or by a third party system/add-on.
Also, you will need a developer and/or someone very familiar with content management systems to install and configure the software. There is nothing like the "WordPress famous 5 minute install" that will give you visible results very quickly.
- Extensibility: ExpressionEngine's core is extensible, allowing for third-party code to be modularized and installed. ExpressionEngine's community has a number of highly talented add-on developers that contribute to its pool of add-ons.
- Flexibility: ExpressionEngine is tremendously flexible, allowing for a single installation to manage everything from static pages, to blogs, to full fledged eCommerce platforms.
- Ease of Use: ExpressionEngine's control panel can be themed and its publish layouts customized, allowing for a very pleasant experience for our clients. This increases the likelihood of them actually using the platform which reduces the number of support hours we must provide.
- Query bloat: ExpressionEngine tends to run an excessive number of queries to generate content. This is due, in large part, to an inefficient database schema.
- Lack of third-party add on reviews: ExpressionEngine's extensibility is also a curse, due to a lack of official reviews of add ons. This can introduce bugs in the system that are difficult, at best, to squash.
- Reliance on outdated technology: While newer versions of ExpressionEngine have started to move away from CodeIgniter (almost entirely at this point), older installations still rely on the outdated framework resulting in a code base that does not take advantage of updated server software.
- First-party and Community Support - ExpressionEngine has a large support base both from EllisLab, the maker of ExpressionEngine, and the vast community of users. Any challenges that arise during a project, there is either a third-party plugin or a solution already posted on a discussion forum.
- End-User Experience - Every website we build is custom from the ground up; no two are alike. Each install of ExpressionEngine is built and organized to fit that specific client. With the use of custom fields, our clients can easily update and maintain their website while keeping the styling intact. Many systems will give one large WYSIWYG box and it's up to the user to ensure the styling of the content matches the page and branding. ExpressionEngine allows us to create a entry form guiding them through the process of creating or editing a web page. We can decide how strict or loose the content areas are based on the technical expertise of the client or website administrators.
- Templates - The templates built into ExpressionEngine use native HTML for rendering. Within the HTML, we're able to inject their tags into our code to process the functionality. This makes moving our front-end code into the back-end quick and seamless. This is incredibly helpful for maintenance purposes as we find reading HTML is far quicker and easier to read and diagnose than PHP code.
- Third-party Plugins - ExpressionEngine has a large community of module, extension and plugin developers to help solve any challenge. Custom fieldtypes can be easily installed for better user experience. Powerful add-ons for eCommerce and site searches developed by well-known and highly reputable companies ensure support is always available. ExpressionEngine does not suffer from an over-abundance of third-party plugins questioning the level of support especially with ExpressionEngine system updates.
- License - ExpressionEngine is a licensed product and has a license fee that comes with each install. Most of the additional first-party functionality that is available outside of the core ExpressionEngine install has a license attached. For large websites with a lot of functionality, software licenses for ExpressionEngine and third-party plugins as well can cause the price to exceed the budget of a client.
- Third-party Plugins Required - EllisLabs has been making strives in adding native functionality into ExpressionEngine that would have required third-party plugins in previous versions. They tread carefully not to punish plugin developers who are selling their plugins by building it into the system at no additional charge, however certain functionality like page organization for site navigation should be already included and more streamlined for the client.
- System Updates - Compared to other content management systems, ExpressionEngine is not the easiest when updating to newer versions. Its a manual process of copying, uploading and moving files. There is no "push-button" approach without purchasing a commercial add-on by a third-party developer. With the requirement of third-party plugins to be added for user experience, each system update will require a proactive approach by the plugin developers and the admin updating the system to ensure the plugins will work on future versions. Most admins will wait several months to ensure plugins and minor bugs are ironed out prior to updating.
I did not give a ranking of 10 as there are some instances where other systems would handle the job better than ExpressionEngine; it's not the end-all-be-all. If a client is looking strictly for an eCommerce site, there are other systems that are better prepared for the task and will cut down on development time reducing the overall budget for the project.
- Flexible templating engine - ExpressionEngine makes no assumptions about what type of website or application you want to create. It does a good job of separating data from data presentation, allowing you to choose the front-end framework that works best for your/your client's needs.
- Robust community support - The ExpressionEngine community is very helpful. There are many resources for third-party add-ons and technical support answers.
- Forward-thinking architecture - Built on CodeIgniter, ExpressionEngine uses a well-documented and proven PHP architecture that is scalable and powerful.
- Third-party AddOns - ExpressionEngine's flexibility is also a drawback. Because it makes no assumptions about your web project, it doesn't offer every feature under the sun. Expect to increase your budget to accommodate the variety of third-party AddOns that really make it shine. Not everything is done well, and some functionality is best left for dedicated third-party solutions.
- Configuration - ExpressionEngine requires time and expertise to get an installation really dialed in before you can hit the ground running. There are a lot of configuration options, and adding third-party AddOns to the mix increases the amount of configuration. However, this is a good example of the power of the software. You have a lot of options and can really dial in security settings, software behavior, administrative access and so forth.
It does a great job as a scalable and flexible CMS. ExpressionEngine begs you to be organized and think through your information architecture before you start coding. This is a good thing right? I think ExpressionEngine can quite possibly lead to a better website and a better user experience as you really need to think through channels, variables, custom fields and architecture.
ExpressionEngine was also used as the CMS for a corporate presence site for a well known cloud storage company.
- What you're given is a CMS with a strong database schema to group and deliver contextual data with fantastic ease of development. Accessing data from a table is an easy scripting language in which the results read like English language sentences yet still powerful enough to adapt to infinite design needs.
- No need to amend a template system. Build the templates on the fly and let ExpressionEngine deliver them. This resulted in an easy front end development with no learning curve. It was like having a blank slate in which the CMS would exist to mainly feed the data to the front end.
- ExpressionEngine can deploys the entire site as flat files for an extremely fast loading product which also pleases the SEO nerds.
- Because the development of the site is saved entirely in the database it became somewhat cumbersome save versions of the site to a git repository. The only difference between one install of ExpressionEngine and another is the database itself. You could make a SQL dump from one site and load it into another and have completely migrated the site. This sounds great if you need to migrate sites all the time, but backing up versions of an existing site meant backing up sql dumps.
- In EE v.2.8.1 you can now export template files to flat files so that database connections will be reduced. This addition will help the CMS greatly.
- This is actually in part and parcel with the last point. Being that git repository back up is difficult, collaborate development would also be a challenge. I was lucky to be the sole developer on my projects, but if you have multiple developers working on one product and they have branching code sets, the merging of this code would be time consuming, being that the developers would have to manually add the code to the same install rather than an easy deploy script. Why would this be? Because until the product is rendered to flat files it's all in the database. Of course this could all be overcome by having a dev environment that is shared by all developers. Then deploying to staging or production would just be the act of dumping then loading SQL files. But that is not the current work flow that developers have grown to appreciate.
- Simple admin interface for the end user.
- Generates clean markup for front-end theming.
- Not flexible enough to create a really custom website.
- Source control can be a mess since it's mostly database.
- Data migration even core updates or server migration are not easy to make.
- Is not an open source license.
It's reliable, extendable, and has been a core part of our business for years.
- You design what is best for your client, and then build the dynamic features in. Other CMS products approach this backwards.
- It's easy for our clients to manage their sites, even on complex builds.
- It has a strong, helpful community of users and developers.
- Developing is fast and straight forward.
- Having common field sets that are independent of content channels would be a welcome change.
- It's control panel could use some streamlining and design updating.
- The process of updating the system needs over hauling.
- We noticed extensive capabilities in the area of user management. The application allows for multiple administrators so that work can be spread out through multiple resources at a company rather than bottlenecking with the web developer.
- ExpressionEngine has gained a significant following through its high level of customization and ease of use. The interface is straightforward and offers easy access to both front-end and back-end editing. Because this CMS software is open source, you get the best of both worlds. You can add to your website’s functionality through the use of PHP, which means the functionality you desire from a website is easily within reach. For the non-technical user, you can simply work on your site from a simple front-end interface with a simple navigation.
- For functionality and flexibility, ExpressionEngine content management system software is a versatile option for operations large and small. It has obviously extended its reach to many professional websites, which is evidenced on the front page of their product site.
- ExpressionEngine has a thriving community base filled with veteran CMS users who can help you with questions through the community forum. For the programming-savvy individual, you have access to a developer portal complete with documentation, forums and tips for increasing your knowledge of the software.
- Very powerful CMS. Expressionengine can be thought of as a database, where you create your collections and tables and define all sorts of fields for them. Then you can gather the information in this collections any way you want and show it on front-end or at the backend.
- EE very easy to setup. For a site that is based on eCommerce/ Articles / News this CMS is excellent.
- Plugin, Module installation should be with ease. Upload as zip - install.
- Multisite function should be included with purchase and not be as separate module and restriction to 3 sites - it should be infinite.
- ExpressionEngine does a fantastic job in separating the content from the code, allowing you to build custom templates using only your own code and markup.
- ExpressionEngine has great documentation. It's easy to find clear and concise explanation of all of the core features.
- ExpressionEngine has a great module community. Many of the modules require a license, which will seem different from WordPress or Drupal, but many of these module developers also provide great customer service and support.
- I always seem to use a core set of modules (Structure, Matrix, Playa) when I build an ExpressionEngine site. It'd be nice if they were included in the core feature set. However, I'd hate to stop supporting the developers of these great plugins.
- As a new ExpressionEngine developer it was a little tricky to figure out the ExpressionEngine way of doing things. Coming from Drupal and WordPress, where the display was more married to the content, it took me a while to really get how ExpressionEngine handled everything. I haven't been a new ExpressionEngine developer for some time, so their documentation may well have changed in the past six years.
- I'd love to see an easier upgrade process. While upgrades aren't terribly difficult, they're enough of a hassle that I find myself wanting to put them off.
ExpressionEngine was our go to for clients that needed a heavily robust site without default bells and whistles. These projects included a large number of different streams of data (blog, staff members, locations, news, departments) all with interconnectivity in a way that was quick to set up.
The primary downside to ExpressionEngine is that it is a bare minimum out of the box, and that it essentially requires third party extensions in order for it to be efficient. However, this is a plus when you want to clean up the bells and whistles in the admin to only the essentials that the client will eventually need.
I love the power of ExpressionEngine, but it's usually way more (less?) than we need for our projects, as it takes longer to set up the initial configuration. The handling of the theme is actually far more to my liking over WordPress, as literally every file you create is created for YOU, and not because the theme requires it.
- Extremely robust. To be able to start from absolute scratch in the CMS and get it configured precisely to each individual client's needs.
- Combined with Pixel and Tonic's Matrix and Playa addons alone, EE's channel fields become a whole new world of awesome.
- System needs more hooks, especially for third party plugins. A lot of the plugins are so precise in their functionality that trying to do anything custom with them quickly becomes a chaotic mess and regular hair pulling.
- So bare minimum out of the box, that the cost of the initial purchase is sneaky as you'll spend a lot more on addons and modules.
- It integrates well with your design and development features, so all you have to do after setup is create the appropriate fields and enter content.
- It integrates well with many different tools and plug-ins, so whatever you need in addition to ExpressionEngine features, there's a tool out there that will connect and work effectively.
- It would be nice to have easier access to older saved versions of pages.
- Clean Code Output
- Straight-forward CMS input
- Simple page management
- Session timeout/cookies suck
- Needs much more community
- Needs more current documentation.
- Website Organization
- Quick info replacement
- Form Building
- Database/information management
- Customized templates
- Flexible Templating
- Custom Content Types
- Underlying framework based on codeigniter, could move to a more modern framework
- Could make use of Composer
- Better testing for add-ons.
This was basically a one-user part-time business, but it gave me pretty broad experience with the product.
- The template language is powerful and easy to use
- The user management and access controls are very good
- The back end control panel is very good
- The community and support is not as strong as it used to be
- Software updates are difficult and risky
- Most applications will require additional commercial add-ons
It's a better choice than WordPress if you require highly customized templates.
It's a good choice if you require strong member and access management.