Automattic launched Jetpack in March 2011 with the mission to bring WordPress.com features to self-hosted WordPress sites. The plugin has now been downloaded more than 13 million times. It is widely used and even comes installed by default on many hosts that offer a 1-click WordPress installation option.
In early 2011, few could have predicted that Jetpack would grow to house 33 modules, each of which could technically be its own plugin. Because the Jetpack family of modules has grown to such a large number, the settings page now includes multiple ways to filter the modules in addition to a module search box.
Despite the fact that the Jetpack team has made great strides towards improving the settings interface to support easy deactivation of unused modules, many WordPress users have reservations about using it.
JP Bot Provides Alternatives to Popular Jetpack Modules
Jetpack’s ever-growing codebase has prompted many WordPress users to seek out and create alternatives to some of its best features. A couple weeks ago, we featured JP Markdown, a plugin that duplicates Jetpack’s markdown module. It was created by web engineer Anas Sulaiman who is the face behind JP Bot, the WordPress.org account dedicated to his collection of Jetpack-extraction plugins.
I spoke with Sulaiman to find out his motivation for performing the extractions. His work began with an appreciation of Jetpack. “I really liked some of its modules, but not others. I also didn’t like having to install a bunch of plugins (modules in terms of Jetpack) that I never used,” he said.
Sulaiman decided to dive into the Jetpack code and make it work the way he wanted, taking full advantage of the plugin’s GPL licensing. “A couple of days later, I had four modules of Jetpack running as standalone plugins on my WordPress installation. It started with Jetpack Sharing, Jetpack Gravatar Hovercards, Jetpack Omnisearch, and Jetpack Widget Visibility. Later on, I decided it would be nice to share these plugins,” he said.
Sulaiman has now released six Jetpack-extraction plugins under the JP Bot account. “I don’t like calling these plugins mine. I merely copied code from Jetpack, with very few modifications,” he said.
What specific changes does he make when he duplicates the modules? Sulaiman said that the process of converting a Jetpack module into a standalone plugin is fairly simple:
- Copy all related files into a new folder.
- Scan the code and remove any Jetpack dependencies. It could be commenting out some lines of code or editing others. There is no lost functionality. If a module is dependent on other parts of Jetpack, those other parts are copied over and the lines of code that depend on them are edited to correct references.
- Add a link to the settings page, i.e. “Settings” for Jetpack Sharing and “Go to Widgets” for Jetpack Widget Visibility.
WordPress users who appreciate Jetpack’s features, but have reservations about connecting to a third-party service, will find that the JP Bot plugins are a suitable alternative. The most important consideration is whether or not these plugins will be maintained and updated to reflect changes made to Jetpack.
Sulaiman told the Tavern that he will make every effort to maintain his extractions but admits there may be some delays. At the moment, he is committed to keeping his collection up to date. “I don’t usually give up on my projects, but if I must, I make sure they stay alive,” he said.
He makes no promises to add to the six plugins that currently comprise the collection but is open to the idea. “I already extracted and published the modules I like. If Jetpack adds a new module and I like it, there’s a good chance I’ll extract it and publish it,” Sulaiman said.
The JP Bot collection comes with no guarantee of support. “I don’t provide support for any JP plugin, unless the issue cannot be reproduced using the original Jetpack,” he said. “99% of the time, the post should go to Jetpack support forums. However, it should be noted that Jetpack team doesn’t like providing support for others’ plugins.” Sulaiman advises users to request support from Jetpack based on the original module in question, instead of referencing the JP Bot plugin.
While he plans to share future Jetpack extractions with users and keep his plugins updated, Sulaiman hopes that users will understand his desire to remain in the background with no obligation of support. “For this and that, all JP plugins are now maintained by the JP Bot – a dedicated, intelligent, friendly and silent bot!”