At first glance, Expression Engine may seem to just be a blogging tool like WordPress, but it is actually a lot more powerful. It can be used as a content management tool which is quick to set up, but also allows a multitude of configuration options.

But could it be used for an international gambling site?

Expression Engine was chosen as the CMS we would use when I worked with one of the largest gambling firms in the UK and they decided they wanted to completely change their suite of casino, gaming, lottery, bingo and poker sites.

It may seem like an unusual choice, as a large company like this would usually have enough resources to create their own systems. But using a ready build means we can quickly deploy a suite of sites, then spend time developing custom tools to allow the product managers to be able to manage their sites exactly as they want.

Why Expression?

The main benefits of Expression Engine are that it is a product that is still being actively developed – in fact they’ve just released a very exciting 2.0 product which runs of codeIgnighter. It has a really good library of add-ons and an active community of developers which can help out with problems. The templates allow you to embed PHP right into them, so you can get the best of both worlds – a CMS with all the functionality already written, and the option to write your own custom code into the pages.

Can it cope?

As with all fully-packaged CMS applications, one of the drawbacks is that there is a lot of processing that goes on that you might not need for all pages. This can lead to performance issues with large numbers of visitors, and there is a certain amount of tweaking in the platform you can do to address this – template caching, query caching and turning off additional features like session tracking. However we added an extra layer of protection using a content delivery network layer for some of the static content.


As I mentioned, Expression has a great facility for creating your own modifications – modules and plug-ins that can change the functionality of the front and back end in whatever way you like.

Some of the modules I created are:

Media Manager: Custom media libraries in the CMS from which users can select graphics for articles. This includes an ajax file management area and Flash upload. Further extension of this allowes integration of a CDN.

Lexicon: For multi-langauge sites, a lot of the page titles and captions need to be translated and used throughout the site. This module manages custom language tags in the CMS and feeds them in as global variables for use in templates.

Log More: A module which extends the tracking of CMS activity to create a fully auditable record of who created and modified what.

Cropper: A Javascript uploader and drag/crop tool for image manipulation in the CMS.

Click Track: Further to tracking using RedEye and Google Analytics, this plugin sits withing the Expression Engine dashboard and gives users the ability to add basic statitics on page views or link clicks.