My top 10 Expressionengine add-ons and hacks

Posted in Web Design on Tuesday, 21st December 2010 at 5:08AM

My top 10 Expressionengine add-ons and hacks

Having built sites with most of the mainstream content management systems available today, both open source and commercial, I can say with confidence that  Expressionengine has got to be my favourite thanks to its amazing flexibility and polished end user experience.  Here are 10 add-ons and hacks that have helped me come to this conclusion.

Note (02/04/12):  I have now released a new blog post with 10 more really useful add-ons at

1. Structure (EE1 & EE2 – $65)

When I first started using Expressionengine, my main gripe was the lack of any sort of automatically generated navigation such as I had enjoyed on other platforms including CMS Made Simple …. that was until I discovered Structure.

Stucture makes Expressionengine really easy for your clients to add and edit new content by arranging the site in a hierarchical tree enabling them to just click the name of the page and make their amends.  The module comes with a number of tags that enable you to output navigations, site maps and breadcrumbs and to help organise news and other repeating content.  Pages can be drag and dropped to re-arrange them and child pages can be easily added with just a click of the mouse.  The scope of this module is pretty huge so needless to say it has quite a significant impact on the way Expressionengine operates, a fact which may not appeal to the purists out there but when I build sites I want them to be easy for my clients to manage and in my opinion this is the best module for making that happen.

Useful associated modules: Encaf Direct to Structure | Structure Entries | Structure CP Toggle Children | NDG Sidebar Structure

Note: A more recent module on the scene with somewhat similar functionality is Taxonomy .  Whilst not quite as far reaching or flexible as Structure, it offers a really polished interface and at a price that is hard to ignore, free!

2.  LM YUI Communicate & Multiple Newsletters (EE1 – free)

Having looked at some fully fledged HTML email campaign modules for Expressionengine such as Champagne and Firemail I decided that these were a little overkill / expensive for my clients who essentially just wanted a way to send out a HTML newsletter every now and then with the least bother possible.  Having done some digging I came up with a solution that I feel really hit the mark when it comes to simplicity.  First I installed the YUI Communicate extension to enable a WYSIWYG editor in the communicate tab then I used the Multiple Newsletters extension by Cocoaholic to allow the editor to be populated directly from a template.

The end result was that I was able to create a standard HTML email template and convert it to an Expressionengine template with standard EE tags.  I could then set up a weblog for the main content of the newsletter and draw in other content from around the site such as news stories and images.  Once my client had written their entry they could just open up the communicate tab and they would find a rendered version of their email in the WYSIWYG editor, ready to send to their mailing lists just like any other email. Whilst you don’t get all the bells and whistles of Campaign monitor or Mailchimp, you do get integration with the content on your site and a really fool proof way of sending out good looking HTML emails.

The Expressionengine communicate tab

above: The communicate tab showing my html newsletter preview

3. nGen file field (EE1 – free) & SafeCracker File (EE2 – free)

These are my two favourite file uploading fields for EE1 and EE2 respectively.  I especially love nGen for EE1 as it has a brilliant audio extension that allows it to play previews of uploaded audio files directly from the publish page.  Another fantastic hack which I discovered for nGen was the ability to add a progress bar to the publish page so that the client can monitor large uploads.  To achieve this the uploadprogress PHP extension needs to be installed on your server.  Instructions can be found here and whilst I warn you it isn’t 100% straightforward I can vouch for the fact that it does definitely work and that my client was really pleased.

Expressionengine progress bar

above: nGen file upload progress bar for EE1

4. Google Analytics panel (EE1 – free) & CP Analytics (EE2 – free)

This is definitely another crowd pleaser – being able to view Google analytics right from the control panel.  These two extensions do similar things for EE1 and EE2 respectively but personally I prefer Google Analytics panel as due to the nature of EE1’s control panel home, it can be set to display from the moment a client is logged in.  In EE2 the user needs to click on a tab at the bottom of the control panel in order to view the statistics which whilst not a big deal, in my mind does just isn’t as good as having the analytics there to view from the moment they log in.

5. MD Character Count (EE1 – free)

One of the problems with content managed sites is the potential for users to stick reams of text in to areas that were only ever meant to house short snippets.  Whilst tools such as Trunchtml do a great job of cutting down bloated copy, in an ideal world editors would write an appropriate amount of text to start with.  With this extension you can provide your clients with a visual prompt to let them know how many characters they have left to play with before they have entered too much text for that specific text area.   You have the option of selecting either a ‘hard’ or ’soft’ count depending on whether you just want to alert the user to the ideal limit or actually force them to stop once they hit it.

MD Character count

6. Freeform (EE1 & EE2 – free)

This brilliant module from Solspace offers a really elegant way to create web forms on Expressionengine sites and to store the  resulting submissions to the database as well as emailing a copy to the client.  It is a really flexible module and I was surprised but not complaining that it was available to use free of charge.

7. Trunchtml (EE1 & EE2 – free)

Admittedly, truncating strings of text is never going to be sexy, but Trunchtml does a really elegant job of it all the same and makes creating dynamic  intros and teasers a lot simpler  and more reliable.  This plugin is HTML aware so you can use it on strings containing tags without needing to worry about them being counted with the text you are trying to truncate.

8. ImgSizer (EE1 & EE2 – free)

Similarly to Trunchtml, it’s hard to get over excited about a plugin that resizes images but ImgSizer is still pretty cool.  It does a very efficient job of creating and caching images on the fly meaning your clients only ever need to upload the image once regardless of how many different variations of the image are going to be displayed.  It even converts images to greyscale if needs be.

9. WYGWAM (EE1 & EE2 – $35)

I have worked my way through a few different WYSIWYG editors for Expressionengine and my new favorite is WYGWAM by Pixel & Tonic. Based on CK editor, it produces clean markup, is really easy to use and includes a fairly slick upload capability.  Another really nice feature is a drag and drop interface to enable you to set up multiple toolbar presets which you can select for individual fields. For example you could set it up so that for one field the editor only allows simple text editing whilst on another the user can upload files and edit the source code depending on the WYGWAM preset you chose for that field.

WYGWAM for expressionengine

10. Reeorder (EE1 – free) & Low Reorder (EE2 – $16)

This was one of those problems that I didn’t realise I had until my client asked ‘Could you just run through how I re-order those case studies?’  Hmmm I thought – there must be a module for that and low and behold (no pun intended) there were, Reeorder for EE1 and Low Reorder for EE2.  Both work in a similar way, you create a hidden field for a selected channel  / weblog which you then set as the field by which to order the output in the template.  This field can then be reordered via a drag and drop interface thus re-ordering the output of the entries.

Note (02/04/12):  I have now released a new blog post with 10 more really useful add-ons at

Add your comment

Remember me?

Notify me of follow-up comments?

Nice list, pretty much mirrors what I use except in that I haven’t dare take the Structure plunge yet. It scares me!

Posted by Mikee Bee on Friday, 4th February 2011 at 10:59AM

I love the way that you set up email newsletters!  It’s so intuitive and seems easy enough for the client.  Thanks for sharing!

Posted by Ryan Battles on Sunday, 26th June 2011 at 6:22PM

love the newsletter solution. I always just recommend clients to use campaignmonitor or mailchimp but your solution definitely will find its way into my recommendation. very cool

Posted by florian on Wednesday, 31st August 2011 at 5:55PM

Great post Mike. I am still a novice. 6 months of starting up using Expression Engine on your recommendation and I love it! Still have yet to use SafeCracker fully and will definately use Low Reeorder now. @Mikee Bee Structure is brilliant and I can not imagine not using it.

Posted by Matt on Thursday, 1st December 2011 at 2:11PM

Michael's Paintings


50.5cm x 31cm
Acrylics and ink on plywood

Michael's photos

Beijing Opening Ceremony

Paralympics Opening Ceremony
Beijing, China

Featured Web Project

Muir Cottage - Details page

Project: Muir Cottage and the Bothy