Blog

ExpressionEngine 3.0 Conversions Progress So Far

It's very challenging, as a software company, to have enough process and organization to conduct fruitful and effective developer preview and beta programs. EllisLab, through it's development and release process for ExpressionEngine 3.0, has demonstrated their maturity and internal capabilities very well in this regard. The Solspace team has uniformly been impressed and grateful for this. Starting in the spring we began seeing developer previews of ExpressionEngine 3.0. They were previews, alpha versions of software, so I won't comment on their quality. Certainly we of all people can attest to the fact that alpha software is sometimes rough. What should be emphasized here though is that the EllisLab team was extremely responsive when it came to receiving developer input and feedback. We had been complaining of this for years, but this time around, EllisLab really delivered. It takes years for a software company, any software company, to develop this level of maturity. They've done a great job.

So we've been working with developer previews throughout the summer. With a library of more than 20 ExpressionEngine add-ons we have a lot of work to do to convert our code when a major release of ExpressionEngine comes out. Our path from ExpressionEngine 1 to ExpressionEngine 2 was particularly painful, mainly because the underlying platform changes were so significant that time around. With ExpressionEngine 2 to 3 though, the changes are less significant and in fact, more thought out. We can see from the underlying architecture that ExpressionEngine 4 will also require some work and we can also anticipate where that work will be. Fortunately, the way EllisLab has set things up in ExpressionEngine 3, we are in a position to be proactive about the changes coming in ExpressionEngine 4. Since I believe that quality always wins in the end, we are taking the time to move our code as far away from legacy ExpressionEngine 2 architecture and as close to ExpressionEngine 4 as we can. We may as well be proactive.

How long will all of this take? How long do you have to wait for an ExpressionEngine 3 compatible version of Freeform Pro, Calendar, Super Search, or Tag? In my last blog post, I talked about our priority list. I should say a bit now about the speed at which we will be able to convert our code.

Try to keep in mind something that perhaps too few people know. Solspace is a client services company first and foremost. Before we sold software, we provided client services. During our selling of software, we provided client services. After we sell software, we provide client services. We build websites. We build web applications. We build back-end API integrations. We customize and augment web systems. It's the core of our business and the bulk of our revenue. We are always working for clients. The entire team is engaged in that side of Solspace. So when it comes time to do a major overhaul of all of our software products, it must be done in parallel with ongoing client work. The fact of the matter is that software sales do not cover software expenses. Our add-on software for ExpressionEngine serves primarily to generate client service leads. It's actually a great marketing move and one that has worked for us for years. But it also means that our ExpressionEngine add-ons are not our only priority. We need to juggle and struggle to keep the lights on just like everyone else.

Much of the developer preview cycle was spent with our lead developer Greg Ferrell working on understanding the underlying architecture changes of ExpressionEngine 3.0. We have a PHP library that we call Add-on Builder. We use it to facilitate the functionality of our various add-ons and provide a unifying approach to how we build and maintain them. Greg spent much of the developer preview re-architecting our Add-on Builder. He did so in the context of converting our Tag add-on. Why Tag? As an ExpressionEngine add-on, Tag fires on all cylinders. It touches all of the core components of the ExpressionEngine add-on architecture and it does so in a way that does not bend or break the system. In other words, it's as close to a standard add-on as we have. It made sense that we convert that one first because what we learned there can guide the rest of the team as we divide up the conversion responsibilities.

So Tag 5.0 is on the way pretty soon. It's going into QA in a few days and it's in pretty decent shape even before that. Alongside that conversion, I am learning from Greg's code and approach on Tag and applying that to Super Search. Why Super Search? Internally, as a team, we each sort of own an add-on and maintain it. Super Search is my baby. If you've ever compared it's code to something like Tag or Freeform Pro, which Greg owns, you'll see why there will always be a Greg as long as there is a Mitchell! Super Search is coming along and is perhaps 30% converted. I suspect we have a few more weeks there. Once Tag is released, Greg will tackle Freeform Pro next. It's a big seller and a widely used add-on. We know that getting Freeform Pro out the door will free a lot of developers up to upgrade their client sites to ExpressionEngine 3.0.

So there's the current state of ExpressionEngine add-on conversion at Solspace. We are enjoying the new platform. A number of excellent choices have been made by EllisLab and we are feeling optimistic about the future. Tag is on the way first, then Super Search and Freeform in short order. Then more after that. I will keep you posted.