29 Oct ‘15
Why ExpressionEngine could be a great choice for your next CMS
29 Oct ‘15
In: Branding & Visual Design, Los Angeles, Marketing, Technology, User Experience Design, Web Design & Development, / By: Chris Simental
At Ripe, we’ve worked with a number of Content Management Systems over the years including Drupal, Joomla, WordPress, Expression Engine, Movable Type, and many more that I’ve since forgotten (probably for good reason). Currently our two top faves by far are WordPress and ExpressionEngine. Generally we view WordPress as a great option for brochure-type sites and blog sites and ExpressionEngine as a great option for more complex sites. In this article I’ll cover some of our favorite EE features that make it a great choice for certain sites.
Why ExpressionEngine over WordPress?
The main reasons why we’d generally choose EE over WordPress is if the site requires several different post types, multiple member groups, relationships between entries, or front-end data submission. We also prefer EE’s support options and template integration.
Custom post types
By default, WordPress only allows for three types of content: “Posts”, “Pages”, and “Media”. If you want to add a different content type to a WordPress site—such as a listing for Products or News—you’d need to develop that within the functions.php document or install a third party plugin. ExpressionEngine, on the other hand, was built to have custom post types from the very beginning. You can add as many as you’d like without needing to do any coding or installing a third party add-on. The real beauty of it is that the various post types can live harmoniously in the Edit window, which means all content can be edited in the same place and in a familiar way rather than needing to jump around among plugins to edit content.
ExpressionEngine starts as a blank slate. The CMS makes no assumptions about what kind of data your site will store. Because of this, the content possibilities are endless and the creation of different content models—e.g. “blog posts”, “products”, “team members”—is seamless. ExpressionEngine calls these model types channels and each one is single-focused.
Attached to the channels are custom fields. A product channel, for example, could have “price”, “description”, “sizes”, and “category” fields. Creating these in EE is easy and straightforward. Plus there are many custom field types available such as color pickers, dropdowns, multi-select, radio buttons, rich text editors and more. One of our favorite EE add-ons is Matrix, which allows us to create a matrix of fields which can accommodate complex data entry while still maintaining elegant user experience. WordPress, by comparison, would require edits to the functions.php document or a third party plugin to accomplish the same an it would not be nearly as elegant or future-proof.
EE’s relationships functionality is a simple yet powerful solution for creating relationships between entries in different (or the same) channels. Relationships let us create complex, custom data structures. For example, we could have a “collection” channel that contains entries from a “product” channel. And/or a “catalog” channel that contains collections that contain products.
Front-end data submission
ExpressionEngine supports front-end data submission, which means we can allow registered users to create and edit entries through the front-end of a website. For example, a user could sign in and submit a job posting or a calendar event. EE has built a built in status groups, so we can set the status of a customer-created entry to “review” until an administrator approves it.
Easy Template Integration
Because EE makes no assumptions about your data, it also makes no assumption about how you want to display that data. This makes getting dynamic data into the templates very clean. There are no extraneous HTML tags to worry about. Requesting content from an entry outputs only the content that’s requested. The way I like to explain it is that most CMS’s require developers to build the design around the structure of the CMS, but with EE we can inject CMS content into the template. In practice, this means our UX and visual designers can create whatever interface they want without fear of CMS incompatibilities.
Member group permissions
When sites require a handful of different member groups to maintain or view content, EE is a great choice because it has a built-in member module. The member module allows for multiple member groups with any combination of channel permissions. This means we can set up projects, for example, where one group of users can edit news items while another can edit news items and blog posts. WordPress would require a plugin to do something similar.
Both WordPress and EE have numerous add-ons that make them more powerful and extensible. WordPress has quite a few more than EE, even, but we’ve never been at a loss for finding the right EE plugin. Devot-ee is an ExpressionEngine site with hundreds of add-ons provided by the community. Some of our favorites are CE Cache for advanced template caching, Structure for creating and managing content through a simple and intuitive interface, and Expresso Store for e-commerce integration.
Since EE is a for-pay CMS, it has actual support staff to answer user questions in a timely fashion. And in addition, EE has a great StackExchange which allows the community to pitch in and help each other with various issues and questions. There is also a very active and helpful support forum for EE.
All CMSs have their quirks and issues and none is the end-all answer for every project, but there are clear cases where ExpressionEngine is a better choice than WordPress just as the reverse is true in other cases. We’ll cover our favorite features of WordPress in another blog post. In the meantime, if you’re a developer and you’re curious about EE, definitely check it out. And if you’re looking for an ExpressionEngine developer in Los Angeles, definitely give Ripe a shout. We’d be happy to share more about our experience and expertise.