I missed this when posting about the release of EE 2.4, but in the changelog for the EE 2.4 release the ExpressionEngine Reactor teams’ contributions to the release of called out (with [ExpressionEngine Reactor]) so everyone can see what the developers are working on. Excellent idea and a nice surprise.
Here’s what they worked on for EE 2.4:
- [ExpressionEngine Reactor] Added the list of Channels to dropdown under Edit.
- [ExpressionEngine Reactor] Added third_party_path config item.]
- [ExpressionEngine Reactor] Changed default text formatting from XHTML to none.
- [ExpressionEngine Reactor] Fixed a bug with autosave where the save() method would be called for third party add-ons on autosave.
- [ExpressionEngine Reactor] Added core_template_hook that lets you change the template to be loaded based on the uri_string.
- [ExpressionEngine Reactor] Added template_post_parse hook that lets you modify templates after parsing.
- [ExpressionEngine Reactor] Added template_fetch_template hook that lets you see what template is being loaded.
- [ExpressionEngine Reactor] Added option to suppress errors thrown by loading language files.
- [ExpressionEngine Reactor] Added all plugins to default text formatting list when creating a new field.
- [ExpressionEngine Reactor] Abstracted field edit/create logic to the Channel Fields API.
A good description of the team and the idea behind the reactor is available here in this blog post by Leslie Camacho.
Nice work, everyone!
In an announcement on the ExpressionEngine blog, EllisLab CEO Leslie Camacho talked about the EE Reactor project and the people involved. Some of this was announced previously at the EECI conference last month in Brooklyn. Leslie also announced that the team already has code ready for an upcoming release of EE:
As of the time of publication, the EE Reactor Team has nine confirmed contributions scheduled for release in EE 2.4 (late January).
The team is focused on “code that makes life better for the EE dev community.” It’ll be interesting to see what they have planned. I suspect that the tweaks made are directly related to problems those developers have run into while working on client projects at their respective agencies or while writing add-ons.
Greg Ferrell, Leevi Graham, Brian Litzinger, Jack McDade, Erik Reagan and Rob Sanchez are all members of the team.
I look forward to seeing how this new experiment works out and hopefully I can get some of the members to share their experiences working on the team and code after the 2.4 release is out.
A couple of weeks ago, I wondered aloud on this site what EE Reactor is and even tossed around some ideas about how it would work. There was some push back in the comments and in private conversations but the reason behind my write-up still stands firm: don’t publicly talk about projects that are unannounced in a way that makes them seem announced. It’s confusing. Even to this so-called insider.
That’s what led me to speculate about the EE Reactor project. The part of my theory that EE Reactor would be a separate download for license holders wasn’t correct. In the comments, Leslie Camacho (EllisLab CEO) chimed in and noted:
There will only be EE proper, like Media Girl said. We’re not doing the Magento thing with multiple editions.
So, there we go. EE will be EE. Good news. How the flow of Reactor code changes to the EE releases will work isn’t finalized, according to Leslie. He said the plan is to allow “as much autonomy as possible in terms of what they want to work on” but they won’t have free reign on pushing out changes. The plan right now is that EllisLab would have tight control of the process and code would be thoroughly tested and reviewed, similar to how CodeIgniter works.
In response to my worry that developers would be, without a doubt, working for free to help improve a commercial product that could improve the amount of money EllisLab makes, Leslie answered:
People contribute to projects because it helps them in some way, because they like adding to something that makes a difference in people’s lives, and because they simply love doing it.
I couldn’t agree with this more but it does generalize the issue a good bit and flatten some of the nuances of this arrangement.
In the days following my article, I had conversations with various people in the community to get their opinion on the EE Reactor idea. Here’s what I heard:
- Great idea and a huge testimony to how great our community is.
- EllisLab should hire more developers instead of allowing people to work for free.
- What does this mean that EllisLab needs outside developers to make their product better?
- Dumb idea!
- This might allow developers to get their feature requests in so they can build better products.
Let’s unpack some of these.
Is it spec work?
First, on the idea that EllisLab is allowing people to work for free on a commercial product. This is always a touchy situation, especially when it comes to design contests and spec work. Admirably, EllisLab speaks out against spec work in the information page for the Professionals Network.
Please note that asking for free or underpaid work in exchange for a reward at a later date is called Speculative Work (spec work) and is not a standard business practice among professional designers and developers.
Does the EE Reactor work really fit the definition of spec work? Well, not really. The developers participating aren’t doing it in anticipation of paying work down the road with EllisLab or that they would get paid if there code fix or feature implementation gets pulled into the EE2 release product. So, in that sense it is not spec work.
What do you think?
In the comments of my article, Aaron noted with sarcasm:
If developers wanted to build products for me for free and then purchase them from me afterward, I’d welcome them with open arms too (If anyone is interested, please get in touch).
This is an argument that I’ve pondered myself but how the EE Reactor project came about was organically from the community (see Steven Hambleton’s comment), not EllisLab trying to strong arm developers into doing their work for them. Context is what matters here.
Doesn’t EllisLab Have Developers?
Yes, they do. And if you’re running EE 2.2 you’ll know that they’ve been hard at work chipping away at bugs, refinements and improvements. As I’ve mentioned before, if you used EE 2.0 and EE 2.1, you can immediately appreciate the difference EE 2.2 makes. It’s not a redesign, a redevelopment or anything of the sort. But it is a big improvement over what they had. While underwhelming compared to the Assets module by Pixel & Tonic, the File Manager is solid and better than what was shipped with EE 2.1.
So, EllisLab does have developers on staff. But they (we) are fortunate enough to have a room full of talented developers in the community. Will all of them participate in the Reactor program, if it moves forward after the initial test stage? I don’t know.
Creating Better Add-ons and Websites
One take on this is that by allowing EE Reactor to happen, the add-on developers can have more influence over the addition of new hooks they need and, most importantly, bug fixes that are keeping them from improving–or even releasing–their add-ons.
But it’s not just about developers. If a member of the EE Reactor team is building a website for a client and runs into a bug (and as of right now there are plenty, he or she could fix that bug and submit it to be included in an upcoming release of ExpressionEngine. In order to finish the site the developer would have to fix the bug anyway, so why not push that out for the benefit of everyone else?
For a community that has a lot more commerce in it (add-ons, EE license, training materials) than other big CMS communities, we are never slow to help each other out. A group of developers seems willing to give some of their time in exchange for any of the above or nothing at all. Maybe they just want to help.
I was skeptical about this idea when I first heard it but after talking to others and hearing nearly all sides of the story, this looks like a great experiment.
In the comments of a recent EllisLab blog post, my friend and supplier of the finest gin, Kenny Meyers asked:
What’s EE Reactor?
I’ve been thinking the same thing and I thought it was just me. I’ve seen EE Reactor referenced in a way that made it seem like it was an announced somewhere but as far as I can tell it wasn’t. In the EllisLab blog post there was a bullet item that read:
EE Reactor concept update
Surely I had missed the original announcement if there was going to be an update. So I went hunting.
A quick google search turned up three tweets from Leslie Camacho about phone calls regarding EE Reactor and an update that “it’s going quite well…”.
Then there were some more mentions in the forum thread about “The state of EE”. All of the other Google results have to do with actual reactors and, you know, physics.
I’m not the only one wondering. In the forums, Danny Tam asked:
Are there any links you can point me to to learn a bit more about this EE Reactor? Can’t seem to find anything on it.
He was pointed to Leslie Camacho’s Twitter feed. Well, okay.
Another response to questions about EE Reactor was:
The reactor group (not branch) for CodeIgniter started in an effort to have a branch of CI that the community was responsible for maintaining and adding to with oversight from EL.
Recently the idea came up to harness this idea for EE. That is what is being discussed in this thread.
Leslie did answer Kenny’s question a couple of days later:
Like CodeIgniter Reactor, but for ExpressionEngine. We have four awesome devs eager to give it a trial run, goal is to have it set by EECI. If it works with 4, we’ll expand.
CodeIgniter Reactor started as a community run branch of CodeIgniter (Reactor is now a team of developers). It moved along at a faster pace than the version developed by EllisLab because it did not have the weight of commercial software (ExpressionEngine and MojoMotor) sitting on top of it.
The CodeIgniter you can download today is CodeIgniter Reactor but it’s no longer called that. As stated in a blog post by Derek Jones last month, “CodeIgniter ‘Reactor’ is CodeIgniter” and the EllisLab branch of CodeIgniter is “no longer being publicly maintained.” I don’t know if that means that ExpressionEngine 2 is still truly based on an open source version of CodeIgniter or not.
Is ExpressionEngine Reactor a community-driven version of ExpressionEngine?
It’s an interesting question and theory because EE is a commercial product and not open source like CodeIgniter. From what I can gather, EE Reactor is going to be an experiment wherein a set number of developers are allowed to poke, prod and improve EE and then EllisLab may pull (some or all of) those changes into the commercial version of ExpressionEngine.
Because EE doesn’t have a free version and isn’t open source like CodeIgniter, I don’t see how this could be anything but a tightly controlled experiment. What are scenarios on how this would work?
Here’s one I could come up with: if you own an EE license you could opt to download and use the EE Reactor version instead of the EllisLab version.
There are some potential downsides to this theory:
- EE Reactor could begin to implement features of commercial add-ons.
- More people would choose the Reactor version than the core EE version thereby shifting the development of the EE people use to a completely different team of developers.
- The Reactor developers would be doing free development work for EllisLab.
- Support could be a mess because the EllisLab support team would have to know two different “kinds” of ExpressionEngine.
- Fragmentation of add-on support (“Does this add-on support Reactor?”).
There’s a lot there. The above list is just me riffing on my theory of how it could work. As I’ve made clear earlier: I have no idea what EE Reactor is or how it really will work.
But people sure are talking about it like it’s been announced already.