Bulldog Blog

Why We Use ExpressionEngine

ExpressionEngine is a now open source CMS (Content Management System) used to build relatively small, static websites or larger content heavy websites. Preferred by companies of any size, it is one of the fastest, secure, most reliable CMS’s out on the market today. More and more reputable and even larger companies such as Disney, Whole Foods and even Pizza Hut have adopted the CMS to build their websites. As of November 1st, Ellis Lab, creator of ExpressionEngine, made the CMS open source. This means there is no longer a fee to buy a license and use the software.

Bulldog has built websites with ExpressionEngine as our go-to Content Management System for several years and it has always proved nothing more than excellent in performance, reliability, and security.

Usability for our clients

One thing that I believe that benefits our clients as well as our team of developers is that it’s not just an install where we add a website theme and we set you off into the wild. Instead, ExpressionEngine allows us to build beautiful, robust and dynamic websites from the ground up. This way, our team is completely familiar with every aspect of the site to support 100% usability for our clients. Building ExpressionEngine sites from scratch has allowed us to become very seasoned and experienced with the software. If we happen to inherit a site built with ExpressionEngine by another agency, then we can analyze any prior issues (if any) and begin smoothly maintaining and improving the usability.

Developer Friendly

Functionality available to the developer right out of the box is also another great aspect about the software. I was honestly kind of blown away at some of the things I’ve been able to accomplish building with it. Here’s a good example: Last year, our team built an interactive map using the Google Maps API (Application Program Interface) that we placed on the City of Huntington’s website. The city wanted the map to list out the addresses and locations of spots in the downtown Huntington area that either had a sculpture of art already or were available to put a potential piece of art. Local citizens could then apply for these spaces and potentially have their art or sculpture placed here for a certain duration of the year. The city also wanted to have this map designed to where they could update and remove locations themselves.

This was an exciting project to get started on because I had already been brainstorming the idea of utilizing the Google Maps API when our team met and discussed the project. The site was already built with ExpressionEngine so we just had to develop a page with the front-end design and functionality. After building the map on the front end using a bit of JavaScript programming, we then used ExpressionEngine’s channel fields to output the data and dynamically place the map markers for each address on the map. We also used the channel fields for listing out the address, latitude and longitude, a featured image that appeared when hovering over the map marker, and an image gallery that outputs on another page. We could essentially use the same channel and output certain fields on other pages. The client could easily publish a new location from the ExpressionEngine administration panel and the address for the location would be posted on the side of the map with a link, thumbnail image and a map marker pinpointing where the art location was exactly.

We could essentially use the same channel and output certain fields on other pages. The client could easily publish a new location from the ExpressionEngine administration panel and the address for the location would be posted on the side of the map with a link, thumbnail image and a map marker pinpointing where the art location was exactly.

This is what the front end result looked like pictured below:

For just the sake of showing a small and simple example, say we wanted to just list out 3 new locations that were just added and place these on the homepage? All we need to do is declare the channel entries tag on the template of our homepage and limit the entries like so:

Here we limit the total number of publications to only 3 using limit=“3” and the entries will post automatically to the homepage of the site or anywhere else you may prefer it. From here we are free to structure this section and style it any way we please.

ExpressioneEngine’s channel entries tag allows us wrap content and structure it easily accordingly to the template. Now don’t get me wrong, I know that this is likely possible with other software like Wordpress. Especially if you were using a plugin like Advanced Custom Fields but sticking with ExpressionEngine and everything it already comes with right out of the box makes building something like this much more creative and exciting. Plus, this is just a faster and more reliable software to use for complex projects like the one pictured above. In turn, it creates a nicely functioning feature and a great experience for your client.


Again, building websites with ExpressionEngine from the ground up has made our team pretty strong and each of us is able to collaborate on a project and deliver a unique, robust and attractive site for our client’s advertising needs. We are confident with the technology and I believe that our clients need developers that are familiar with the tools they use and not a cookie cutter method that would take a considerable amount of time to support.

John Narcise
posted January 7, 2019