The Univ Project, Organizing with ExpressionEngine

Last night I dived head first into developing Univ. If you still don’t know what Univ is or will become, it is essentially a mock university website built on top of ExpressionEngine. Before I could see anything come to life, configuration and organization was priority one.

The Best of Best Practices

In web development it is sometimes difficult to commit to a structured process when working on a website. Thanks to the agile methodologies floating around lately, its become even harder. EE has unintentionally brought sexy back to structured development processes. EE helps me to really think about how I will organize and implement my website. This is especially important when building websites for large departmental universities.

Unlike most systems, EE has a very simple template engine and organizational structure. Instead of mashing everything together with your public presentation (like Drupal) it actually separates the admin interface. So when content managers and contributers login they are allowed to focus only on content. In my opinion this is preferred.

URL Structure and Template Groups

One joy I find in using EE is clean urls are built in and ready for production. Unlike Drupal I don’t have to sit and figure out why “clean urls” aren’t working with my server configuration. EE just works. For example in EE, lets say I create a new template group called admissions. In that group contains several templates such as index (homepage), apply and contact. EE takes that information and builds a url.

The end result is this:

In my opinion, that is the smartest feature in EE aside from custom fields which I will talk about in later posts. But the real genius isn’t building simple urls, its in the extraction.

Any Content, Anywhere

EE extracts everything. In some cases one aspect is not dependent on another. So if you create many template groups and templates without any content, they will still show up in your browser. Most systems are very dependent on the existence of content. This is not the case in EE and its mainly due to the fact that every template is a full web page.

EE has a content publishing structure known as weblogs. I know what you’re thinking, EE is a blog engine on steroids. While that is an easy assumption its not the case. If you look at any website, its content is generally created, updated and displayed chronologically. Even before the rise of blogs this is how frequently updated content worked aside from static content.

Using the weblog structure, EE allows you to model your content any way you’d like. Its not just for blogs. So you want to display upcoming events? Create a custom field group just for events then create a weblog based on that group.  Its really that simple. A perfect example of this flexibility can be found at That project is running fully on ExpressionEngine (with a few customizations and glue here and there).


All in all EE is great for organizing your website the way you want. The best part is that it requires no extensions or additional modules to do this kind of organization and extraction. For university websites, grouping your templates and content is the most important stratagy and EE gets me 90% of the way there by making it simple.

In the next installment I will be discussing implementations of templates, custom fields and modeling your content. I hope to be posting screenshots and making available the live mock university website. Stay tuned!!


About this entry