16 Feb 2015: This post attempted to answer the ‘why’ of Jetpack’s bloat. On 23 January 2015, at Pressnomics, Matt Mullenweg talked about Jetpack being the reason that WordPress wasn’t in decline and a key factor in the fight against WordPress’s competitors. Although I don’t necessarily agree with this or that it makes Jetpack’s approach okay, I do absolutely believe that Matt believes this very strongly. It actually validates most of this post – although I now believe the driver is helping to grow the platform, rather than simple business benefits for Automattic.
Recently, there has been some discussion around whether Jetpack is bloated. Hmm, actually, we’ve been talking about that for years… Anyway, the interesting part to me isn’t whether Jetpack is bloated, it’s why Jetpack is bloated.
Disclaimers
I need to point out that these are my opinions, formed over many years, and are in no way endorsed by the company I work for (Envato). That’s always the case with this site, but I’ll make it extra clear for this post.
I’ll also clarify upfront that this is just about Jetpack. I like Matt Mullenweg and Automattic and are grateful for the amount of effort they put into the project and the community. I like the people who work at Automattic. I think a lot of the features included in Jetpack are brilliant. But personally, I don’t like the philosophy behind putting all these features in one plugin.
It’s not good when you have to start a post with a bunch of disclaimers like that, but I really don’t want people to take this the wrong way! In fact, I almost didn’t publish this.
The Discussion
A few weeks ago, Eric Mann wrote an article titled Bundling and Bloatware, where he essentially argues that Jetpack is bloated. There is a great debate in the comments, including a passionate defence (yes it comes across as a defence) from some of the Jetpack team. Set aside half an hour and go read it all.
Not long afterwards, Sam Hotchkiss wrote up some tests showing Jetpack is actually faster than using other plugins to do the same jobs. Matt Mullenweg then briefly wrote about it, linking to Sam’s post. Interesting comments in both those places as well.
So Is It Bloated Or Not?
In my opinion, yes. I have no doubt it is very well coded and it’s been proven not to be slow, but in terms of features, its, well … bloated.
I’ll concede that it’s better to have a well coded, bloated product than a poorly coded, minimalistic product. It’s important to note that there are some very good developers in the Jetpack team and I have no doubt the code is solid. Still…
Philosophically, I prefer products that try to solve a single problem really well. I don’t like products that try to solve many, unrelated problems. I think it would be better for Jetpack to be a series of plugins, allowing people to only install the ones they need.
The WordPress Philosophy
From the Clean, Lean, and Mean section of the WordPress Philosophy:
We are constantly asked “when will X feature be built” or “why isn’t X plugin integrated into the core”. The rule of thumb is that the core should provide features that 80% or more of end users will actually appreciate and use. If the next version of WordPress comes with a feature that the majority of users immediately want to turn off, or think they’ll never use, then we’ve blown it. If we stick to the 80% principle then this should never happen.
If you were to judge Jetpack by that statement, you would have to say they’ve ‘blown it’. I understand that was written for core and doesn’t have to be followed for a plugin, but it seems the philosophy adopted by Jetpack is diametrically opposed to the WordPress Philosophy. Personally, I think we should all follow the WordPress philosophy as closely possible.
In the comments of Eric’s post, George Stephanis, the Jetpack lead, says:
If you disable a feature, the code isn’t included. It isn’t loaded. It isn’t run. How is that harming you in any way?
But if that’s true, then why do we try to keep stuff out of core? Why bother? Lets add a basic contact form to core, let’s add custom CSS, Markdown support, XML sitemaps etc. They don’t harm anybody if they are disabled, so lets add them! To be clear, I’m not actually suggesting we do this. I’m just highlighting the philosophical disconnect between Jetpack and WordPress itself.
Hang On, Aren’t You The ThemeForest Guy?
Yep. And yes, there are themes for sale on ThemeForest that are bloated. I don’t like those either. Would I like them to trim down? Yes! Am I holding my breath? No. Just like I’m not holding my breath for Jetpack to start stripping features out.
I regularly get into discussions around theme bloat and I always argue that themes should keep things simple, rather than including loads of features. There are a variety of arguments I use, one of which is encouraging people to follow the WordPress Philosophy in their products.
Occasionally I get the push-back: “Well Automattic don’t follow it with Jetpack, why should we”? It’s deflating to have that thrown at you. It’s hard to tell someone they shouldn’t add lots of features into a theme when Automattic is busy adding lots of features into a plugin.
Note, this is purely about features, not code quality or best practice. We don’t want functionality in themes either. If a theme must have a load of features, then it should be through integrations with plugins, etc.
Why Is Jetpack Bloated?
So far, I’ve just rehashed the same old discussion about whether Jetpack is bloated. I’m sure that will just result in the same arguments for and against, so let move on to the main point of this article: to answer why Jetpack is bloated.
Whenever you listen to Matt, or George or Jeremy Herve talk about why Jetpack has so many features, they always say they are doing this to help the users. To quote Jeremy:
your life is still way easier when you don’t have to worry about 30 plugins, because one plugin comes bundled with everything you need to get started. That’s what some of the people I help every day like about Jetpack.
Interestingly, that is very similar to what theme authors say: that their research shows that end users just want to install a theme that comes bundled with everything they need, they don’t want to have to find and install a bunch of other plugins.
In both cases, people are saying it’s for the end user. I do think they genuinely believe that. And I agree that’s what end users want (although personally I think that’s not what’s best for them). But there is more to this equation than that – there is also a business element.
The Business Case For Bloat
The bottom line: The more value you provide, the more likely it is that someone will use your product.
Users often conflate value and features, so simply adding more features make it more likely they will use your product. They don’t even have to be particularly useful features (though Jetpack’s are). Oh, having a good product is important, as is good support, etc, but (sadly) great marketing of features will take you a long way.
For theme authors, having more features means that more people will buy their theme, which equals more $.
Jetpack follows a different business model – it’s free but with up-sells on premium features. I’m guessing we’ll see more and more commercial elements in Jetpack in the future. Regardless, the economics are the same: the more features in Jetpack, the more people will use it, which equals more $.
Why is Jetpack so important to Automattic? This is purely supposition, but wordpress.org users represent a huge market and presumably Automattic want access to that market. They can’t do that through core. The next best thing is a plugin – but how do they get everyone to download it? Providing lots of value – and lots of features.
If Automattic had released Jetpack as 33 different plugins, as much as that would have made me happy, it would not have given them the leverage or user base that a mega-plugin gives them. Although I personally don’t like the bloat, I can see that it makes a lot of sense from a business perspective.
None Of This Is New
The thing is, what I’m saying isn’t new. Remember WPCandy? Well they said a lot of this almost 4 years ago, not long after JetPack launched:
I don’t mean to downplay what the Automattic folks have been saying about wanting to bring .com features to .org users. I believe they want that too; their altruism is, I believe, honest. But there is a very strong business component to this decision as well.
I think Ryan nailed it way back then. Automattic are trying to improve the world with Jetpack, but there are also some important business drivers with it as well.
Final Thoughts
This debate is not going away any time soon. Those people who think Jetpack is bloated aren’t going to be convinced by any of the arguments to the contrary and Jetpack’s not going to start trimming down its feature set.
When arguing about this however, it’s important we understand that it’s not really about philosophy or best practice – it’s about business. And Jetpack is here to stay.