Don't Copy WordPress Plugins

The conversation about the ethics of what it means to copy WordPress plugins, theme, applications, and more isn’t new. In fact, just the other day, I was having a conversation with a friend of mine about what competition looks like in various marketplaces.

Based on my conversation with him (and a number of others, for what it’s worth), there tends to be two schools of thought on releasing products into a marketplace that can be summed up in the following two statements:

  • If a similar product already exists, don’t do it.
  • If a similar product already exists, do it.

Sure, that’s an oversimplification of the idea and there’s a lot to be said about both; however, I’ve seen this same thing discussed in the context of both WordPress theme and plugin development.

Specifically, the quote I read was as follows:

1. Check the plugin repository to see if similar plugin exists.

2. If so, don’t reinvent the wheel.

Initially, I categorically disagreed with this perspective.

Believe The Best (Don’t Assume The Worst)

But here’s the thing: As we all know, when it comes to the Internet, we have a habit of condensing our thoughts into the smallest pieces of consumable information – with the exception of our blogs – for others to read (thanks to Twitter, Facebook, et al.).

To that end, I think that we owe one another the benefit of the doubt when people make statements like that above, because I want to believe the best (rather than assume the worst) and think that most people won’t speak in terms of sweeping generalities. That’s a byproduct of the means of communication we have today.

I hope.

It happens, but surely it’s not as common as we accuse one another. But I digress.

The point still remains: if a similar plugin – or product, for that matter – exists to what you’re attempting to build should you aim to to create something different?

I don’t think anyone would advocate for simply copying an existing product down to the bits and bytes (or to the exact design, ingredients, or what have you). By that, I mean what’s the purpose of doing so?

  • When you go to the grocery store, how many different kinds of ketchup do you see?
  • How many different brands of cars are available?
  • What about how many varieties of ice cream we have?

All of the above have a single thing in common, too: All ketchup serves the same purpose. All cars get us from point A to point B, and all – well, most – ice cream is cold and tastes awesome.

The Price is Right?

The Price is Right

The Price is Right, Right?

Odds are, if there’s already a leader in the market that you’re attempting to tackle and you aren’t doing anything different, what incentive to other people have to swap to your product?

One of the primary answers, in this case, is price. If you offer an identical product for a lower price, you may get some conversions, but you can’t discount emotional or sweat equity.

People put time, energy, and a lot of their work into using an existing product and a cheaper price still may not be enough to convince them it’s worth swapping.

Think Different

Think Different

Think different about your solution

Here’s the thing: it’s important to distinguish if you’re copying an existing product, or if your core product is the same with a differentiation in features (be it more or less), or a different approach to solving the problem.

At this point, I think it’s worth pursuing, because there are often n-number of ways to solve a particular problem.

Some do it elegantly and some just do it. If you’re second or third or ninth to market but you’ve got a sleeker, more elegant solution to solving the same problem as another product, market it.

Other people will likely take notice and at least investigate it.

And, if you’ve done the job well, price is less of a factor here. Because if a customer has invested hours in a similar project but it causes them pain, and yours comes around and makes it a dream with which to work, then the cost of their time to migrate to your solution may be worth the extra cash.

Competition Fosters Innovation

Overall, I think that it’s all about how well the problem is solved. It’s not about copying, it’s not about imitating, and it certainly isn’t about ripping off. That’s a whole other post.

As people seeking to provide a solution to the needs of others, it’s about making their lives easier. So sure, look to see if another plugin – or product – exists, but do so with the intent to know your competition and what you’re up against – not to dissuade yourself from working on it.

Category:
Articles
Tags:

Join the conversation! 16 Comments

  1. As far as the free plugins, if there’s an existing one and you have a way to improve upon it, what would you do?

    Copy, make tweaks then rename? Completely recode it? Let the author know your taking the code and editing some things?

    I never know, I’ve seen awesome plugins and I say to myself “If it just had this one awesome featured it’d be perfect. Hell I can make that feature”

    Now how would you go about sharing it without looking like a thief?

    Another example, I have the mp6 plugin that I restyled, so can I release that back into the repository and call it mp7, different author, etc.?

    • As far as the free plugins, if there’s an existing one and you have a way to improve upon it, what would you do?

      That’s a good question. Personally – and all I’m saying is that this is what I would do – is to contact the developer to make the request.

      If they never offer it, then fork it and make your own. There’s nothing wrong about that. I try to be respectful if I do that, so I always give attributes back to where the initial plugin came from, you know?

      Another example, I have the mp6 plugin that I restyled, so can I release that back into the repository and call it mp7, different author, etc.?

      Maybe call it MP6-remix or MP6-blue or some fancy word based on the color scheme you’ve used. Based on what I understand of MP6’s developer, it’s likely gonna stay closed so releasing something that nods to the original plugin with your own style and influence as well as providing proper attribute would be fine.

      Ultimately, for me, it’s an issue of respect. If a plugin doesn’t do what I want and it’s not on the developer’s roadmap, I’ll go it alone, but I’ll give props where props are due :).

  2. If only there was a way to contribute back to a plugin on the official WordPress plugin repository (a la GitHub style) versus copy pasting, changing, and rereleasing.

    That would be a game changer, IMO.

    • There is, you just need to contact the developer and ask first, then they can add you to the plugin’s repository.

      If they’re not so trusting of a random stranger (which is probably fair), then you can send them a patch :)

    • Yeah – if it were as simple as supplying a diff file to toss to the developer for determining whether or not to include it, that’d be awesome.

      Of course, there are implications with that with Subversion. Yes, it can do merging, but IIRC it operates different than GitHub.

      I’ve had a few issues with merging pull requests with GitHub and it’s a DVCS so I’m honestly not sure how Subversion would handle it if a number of requests were issued.

      Either way, I’m just rambling at this point :).

      Yes, it’d change the game, for sure.

  3. Interesting stuff to think about, Tom.

    Two points that could be added into the mix to consider are:

    Sometimes it’s more lucrative to take something that exists, and improve upon it, rather than trying to come up with something entirely new.
    Further to the first point, even if there’s already a dominant product in the market, second place can still be very profitable.

    However, I tend to think of open source a little differently. I mean, if it were possible for me to improve upon the market leading product itself, I’d prefer to do that than make a competitor. In open source, we have that opportunity.

    If I find a plugin that does almost what I need, and I think it could be a common need, I’ll try to contact the developer to make a feature request and provide the code. Either on GitHub, or by emailing through a patch. (Admittedly, this hasn’t happened very often, because usually my modifications have very specific use-cases)

    • Oops… forgot to number those points… looks a bit weird now.

    • Sometimes it’s more lucrative to take something that exists, and improve upon it, rather than trying to come up with something entirely new.

      Certainly – that’s where the benefit of pull requests, contributions, or even forking come into play. I’m all for including enhancements to a core product.

      But I also think there is a business end to it where if there’s a given solution to a problem, but it’s not done so well and you think you can offer:

      A more elegant solution
      A set of features that improve upon the initial competitor
      And you offer better service, support, or whatever this looks like

      ..then you can still win out. I don’t want to come off as if I’m against collaboration – I’m not (and hopefully contributions and other writings have indicated as such). This is where I think you and I agree – you’ve stated it well:

      However, I tend to think of open source a little differently. I mean, if it were possible for me to improve upon the market leading product itself, I’d prefer to do that than make a competitor. In open source, we have that opportunity.

      But I am for solving problems for users in a way that’s as painless as possible for them.

      If I find a plugin that does almost what I need, and I think it could be a common need, I’ll try to contact the developer to make a feature request and provide the code. Either on GitHub, or by emailing through a patch.

      Sure, sure. I’m all for this – I’ve benefited from this and I’ve done my best to give back to others, too. It’s definitely one of the benefits of the open source economy.

      But there are times where a plugin or solution that exists that’s frankly just too nasty to touch =T. In that case, it may be less work to turn something out myself.

  4. As one who develops plugins for a subset of the WP market (for a specific framework), it has been disappointing when others have entered that market and essentially duplicated my own plugins. I sort of feel like, “Show some imagination and originality!” Instead of splitting the earnings between two similar plugins, why don’t they solve some other problem?!

    That said, I am still in favour of competition.

    But if you want to make money in WP plugins, you will struggle if you make just another gallery plugin or content slider or forms plugin. For starters you’ll be up against titans in NextGen, SlideDeck and Gravity.

    Look for something that’s not being done or done well. And like those three have done, focus all your energies into the one plugin and do it damn well.

    • Based on what you’ve said, I think we’re both on the same page.

      it has been disappointing when others have entered that market and essentially duplicated my own plugins

      I empathize with this, but it is part of the economy in which we live and I think we have to take the good with the bad.

      Ultimately, I think competition wins out because it forces the more creative and/or entrepreneurial types to think with more innovation thus giving us neater solutions to problems.

      But the downside is, like you said, duplication, lack of originality, and ultimately trying to cash-in on a proven concept. This is nothing new, though – and I’m not strictly speaking in terms of WordPress. It’s just how a free market works, you know?

      Look for something that’s not being done or done well. And like those three have done, focus all your energies into the one plugin and do it damn well.

      ^ This. All day.

  5. What about custom plugins? I Have some plugins I wrote because I do not feel I can trust the wordpress plugins platform, as many people I know have been hacked via idioticly coded plugins… I Release my plugins only onto my paying customers sites, but really, should I care if someone rips one off and sells it? As someone that does not sell individual plugins is it really my concern what the client does with it after they commission the work?

    I suppose arguing there are plugins out there and we should help the devs may work for a lot of the free high-quality plugins out there (of which I know only of akismet, the rest seem like crappy bloatware to me…). Really is it my job to inform a plugin developer to read the codex before coding, understand that not having correct permissions, escaping data etc, can lead to getting hacked, or should I simply accept, that some of my clients pay for me to develop them alternatives that are security assured and penetration tested?

    • I Have some plugins I wrote because I do not feel I can trust the wordpress plugins platform, as many people I know have been hacked via idioticly coded plugins…

      I think this is a whole other issue. Generally speaking, our own plugins aren’t necessarily at risk (though this isn’t 100% true) from a security standpoint, but they can be broken via other plugins.

      When this happens, I just take this in a case-by-case basis.

      I Release my plugins only onto my paying customers sites, but really, should I care if someone rips one off and sells it? As someone that does not sell individual plugins is it really my concern what the client does with it after they commission the work?

      This all depends on your licensing, you know? Some people care; others do not. If – for example – someone takes a premium plugin, such as a Woo plugin, and bundles it as part of their theme, then resells it, then yeah – that’s definitely a problem.

      But if your plugin isn’t premium and is just part of a larger project you were commissioned to build, why not? That’s how I tend to see it, at least.

      I suppose arguing there are plugins out there and we should help the devs may work for a lot of the free high-quality plugins out there (of which I know only of akismet, the rest seem like crappy bloatware to me…).

      LOL at the only free, high-quality plugin out there is Akismet – that’s a bit of hyperbole, right? There’s a lot of good, free plugins that are available. The thing is, the good plugins are generally written by people who have done exactly what you’ve mentioned – they are familiar with the Codex, the proper standards, and so on.

      Really is it my job to inform a plugin developer to read the codex before coding, understand that not having correct permissions, escaping data etc, can lead to getting hacked, or should I simply accept, that some of my clients pay for me to develop them alternatives that are security assured and penetration tested?

      I see these as two completely separate issues:

      I don’t necessarily think it’s your or my responsibility or obligation to help other developers along the way – some of us just like doing it. Leave that job to those who dig it, you know? No need in forcing yourself to do anything you don’t want to do.
      I say accept they are paying you to development good stuff – that’s your primarily job so do it and do it well!

  6. Well, based upon above discussion, I’d say that process of putting your plugin on GitHub and forking process would be perfect. Still, I guess using existing plugin [by modifying it bit] is not bad things. One should be allowed to use existing plugin code to fork new plugin outta it!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.