JP Bot: The Silent Bot Behind the Jetpack Module Extraction Plugins

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.

jp-bot-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:

  1. Copy all related files into a new folder.
  2. 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.
  3. 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!”

8 Comments


  1. hmm, I give him props for the endeavor, will be interesting to see how long it lasts. Fortunately, it’s not like Jetpack has an update every few days. If there is such a demand for individual modules to replicate specific Jetpack functionality, I wonder if a team of people can get behind particular extractions with the simple task of maintaining them. So far, it seems like most Jetpack Extraction plugins gain traction, then disappear or go dormant.

    Report


  2. I’m with Jeff on this one. While I agree that Jetpack is indeed full of features that one might not need – some call it bloated – I don’t see this as the way to go. Not unless the modules add some extra functionality, that is?

    It is already possible with Jetpack to activate and deactivate modules, and if there are some modules that you just don’t want to be activated on your site, ever, you can use the filter “jetpack_get_available_modules”

    Report


  3. I’ve considered doing this myself. But I was worried that changes to the core of JetPack may screw up my bot and cause it to trigger faulty updates. I don’t want to have to check every update before it goes live and if something broke, I wouldn’t want to have to run around fixing it in a hurry. So for those reasons I never pursued it.

    Report


  4. “… 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.

    Does this sit wrong with anyone else? We have a team that provides free support for a free plugin, and he’s advising people to try and ‘trick’ us into supporting an unofficial downstream port of our code?

    If the user finds a problem downstream, and duplicates it in the latest release or master branch of the official Jetpack plugin, that’s one thing, but … this just feels … dishonest to me.

    Hoping it’s not just me.

    Report


    1. George – I think you missed the second sentence of that paragraph, which clearly states “I don’t provide support for any JP plugin, unless the issue cannot be reproduced using the original Jetpack,” – So yes, people have to test with the original jetpack first before submitting any tickets. I don’t think he’s being dishonest, just setting boundaries for what he’s willing to support.

      Report


      1. I think it’s this bit with George thought felt dishonest, which seems to recommend users lie about which plugin they’re requesting support for from the JetPack team:

        Sulaiman advises users to request support from Jetpack based on the original module in question, instead of referencing the JP Bot plugin.

        That’s another reason I never went down this path myself. It felt a bit weird requiring people to ask the JetPack folks for support on something they’re not directly associated with.

        Report


    2. No George, you got it wrong. Sarah got it right.
      I am not asking anyone to trick you, you are smarter than that.
      I am just asking users to verify if the issue is actually present in the original, in which case you would be more interested than me in fixing it. Also, I am not as responsive as I should be, and Sarah knows that.
      Calling me dishonest is not cool, and “tricking” is also not cool.
      I admire your awesome efforts though.

      Report


      1. I was just replying and trying to get clarification on what the article seemed to be saying is all. You wouldn’t believe some of the support requests that we see come through on a daily basis.

        Report

Comments are closed.