Why You Should Learn to Build EE Add-ons

By Erik Reagan

At Focus Lab, one service we offer our clients is custom add-on development for ExpressionEngine.

We started dabbling in add-on development about a year after first using EE. It was a foreign land for quite some time, but eventually we noticed the positive impact it was having on our business. Over time, we found ourselves able to say “Yes, EE can do that,” to far more requests than we once thought possible. Eventually, our add-on work led to Focus Lab partnering up with Train-ee to provide add-on development training in the classroom.

Over the past few years, I’ve worked with a number of other developers who have the time and experience to learn how to build add-ons, but simply haven’t slowed down to do so. I seem to rehash the same benefits to each of them, so I wanted to put those benefits out on the blog today for all to consider.

Here are some really good reasons why you should learn to build (or customize) add-ons for ExpressionEngine:

You learn more about how the system works

ExpressionEngine has numerous twists and turns on any given page load. Building add-ons helps you learn where these are and better understand what happens when you use a website. This knowledge helps you not only build better add-ons, but also choose existing add-ons better by knowing what’s possible and appropriate within the system.

You can say “yes” to more features

Out of the box, a CMS only does so much. That’s a fact. Expandable CMSs give 3rd party developers the ability to add features without hacking away at the core code. Learning about EE’s system, and how to build add-ons for it, gives you the ability to say “Yes, we can build that into EE,” to a client or product owner.

Save money and time for your project

Currently, when you discover a need for a custom add-on in a project, what do you do? Chances are you either hire a company (like Focus Lab) to build one, you bend EE and/or existing add-ons to do something they aren’t really built to do or you forgo the feature all together. If you can build the add-on yourself, you not only save time and money up front, but the continued maintenance and feature additions are also easier to access down the road.

Get better at planning

In the early stages of project research, proposal writing or project planning, you need to know if certain requirements are possible (and/or recommended) with EE. Learning the ins and outs of add-on development provides more clarity during this research and will speed up the process quite a bit.

Get better at debugging

Debugging (or troubleshooting) problems is incredibly important when building websites. ExpressionEngine has so many layers that it can be hard to immediately identify where a problem lies. The process of learning to develop add-ons gives you additional knowledge for debugging use that you wouldn’t otherwise have.

Fast Prototyping

ExpressionEngine has numerous “types” of add-ons. If you understand what each type is for, and how it is used within the system, you can quickly and easily prototype add-on features before spending an insane amount of time (and money) figuring out if something is possible.

What Others are Saying

Don’t just take my word for it though, here are some thoughts from other ExpressionEngine developers who sport add-on chops in their daily work:

“Understanding ExpressionEngine’s add-on development process has made it a heck of a lot easier to extend and mold EE to fit our clients’ unique business requirements. We are always trying to extend, not hack, the best solution for our clients!” —David Dexter, Technical Director at Brilliant2

“The add-on system is built into EE as a core feature, not an afterthought. EE itself is very powerful, but when you can start creating add-ons you can extend, bend and twist EE into doing so much more. At The Nerdery, we develop custom add-ons for nearly all our projects, of which 99% are never publicly released. These projects wouldn’t be possible if we didn’t have developers who had spent time learning how to build add-ons, which are basically small CodeIgniter applications.” —Brian Litzinger, Developer at The Nerdery & Owner of BoldMinded

“Understanding how to write add-ons gives you a much greater appreciation of how the underlying ExpressionEngine architecture fits together. Once you’ve mastered it - you can visualize just about any type of system working in the ExpressionEngine mold. This really allows you to push boundaries.” —Carl Crawley, Managing Director, Made by Hippo Limited

Whether you’re a freelance developer, a web development firm or an in-house team, knowing how to build add-ons for EE (or any system for that matter) gives you the ability to get the most out of your software.

If you’re ready and eager to kick-start this learning, I’m doing another Train-ee class in May for 4 days here in Savannah, Georgia. Details available on train-ee.com.