“I’m In It For The Money”, Or My First Commercial Plugin
I’m planning to release my first commercial WordPress plugin later this month. The plugin will be an improved version of the Link Cloaking plugin and will include a bunch of new and exciting features, like cloaking links anywhere on the site (as opposed to only detecting links inside post/page content) and the ability to display the target page inside a frame.
Commercial plugins are a rare sight in the WordPress community, so I want to discuss the general idea of for-pay WP plugins in more detail and provide my take on the relevant issues that are often raised in this regard.
Licensing Woes
The first point of contention seems to be whether plugins have to be GPL-compatible. Since WordPress is GPL all “derivative work” must also use a compatible license, which would allow the user to freely modify and redistribute (or even resell) the source code – something that is certainly not conducive to plugin authors making a profit. This question basically boils down to deciding whether plugins qualify as “derivative work”. The short answer to that is “Yes, except for very complex plugins”. Otto explains it well in this comment (excerpt) :
Your simpler plugins are generally heavily derivative. They tend to be just a few functions, hooked directly into WordPress in specific places. The functions themselves derive their calling methods from the necessity of how WordPress expects them to hook in, and so they are derivatives of it.
Complex plugins, on the other hand, tend to be more independent. They have several files, their own mechanisms for operation, and sometimes there’s just one “plugin” file that hooks the WordPress bits up with the plugin’s bits. These have a better case for being separate works.
Otto also mentions Bad Behaviour as an example of a complex plugin that is largely independent of the WordPress core and even has versions for other blogging systems. The caching plugin PHP Speedy WP might qualify as another mostly independent plugin.
Still, the majority of plugins are deeply integrated with WP and thus need to be GPL-licensed. So I’m also going to release my commercial plugin with a GPL-compatible license.
The next question is whether you can legally sell GPL software. This is an easy one to answer. Here’s what the official GPL FAQ says about it :
Does the GPL allow me to sell copies of the program for money?
Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)
The Very Model of a Businessman
Of course, just slapping a “GPL” label on a for-pay plugin is hardly the solution – as I mentioned before, the first person who buys it could just turn around and start giving it away for free! So if you want to make money by creating GPL software you need concoct a business model that takes the peculiarities of this licensing scheme into account.
There are two possible business models that I can think of :
- Paid support. Make the plugin itself free, but only charge for answering users’ questions. Alternatively, sell the plugin and include “unlimited” support in the price.
- Service-based. This mostly applies only to plugins that act as wrappers for an online service/API. The plugin can be fully GPL-compliant and but access to the remote service needn’t be. For example, you can limit the number of API requests non-paying users can make, or offer access to additional API features for a modest subscription fee. This is the business model of plugins like Akismet and After The Deadline.
I intend to use a combination of the two for my plugin.
But Wait, Is There a Market?
Finally, a perfectly legal business plan will be of no use if no-one wants to buy your software. I’ll readily admit that this problem isn’t limited to WP plugins, but it I must say it’s still especially pronounced in the WordPress community – people have grown used to getting free stuff. Premium themes are still a source of much contention and commercial plugins are extremely rare and, at least for the time being, confined to a few small niches.
The best solution I’ve seen suggested so far is creating an online store similar to the iPhone App Store. The main objection to this idea is that often users install a plugin just to see if it does what they want, and it would be wrong to force them to pay in advance for a product of unknown quality. However, this is a solvable problem. For example, you could just give the user a free 10-day trial and ask them to buy the plugin if they still want to use it afterwards. Make it so that unregistered users don’t get automatic updates, etc. This wouldn’t even be that hard to implement and enforce if done at the core level – the WordPress.org plugin repository already tracks what plugins you use.
Either way, it will probably be a while before we see anything like that implemented. Luckily my own commercial plugin falls under one of the few niches where paid plugins are relatively common and expected – Internet marketing. So I think I have a sufficiently good shot at selling a few copies and making an obscenely large sum of money 🙂
Comments and opinions are welcome.
Related posts :
I’m working towards going premium myself, starting with my WP125 plugin. I have plans for a workable business model that keeps the plugin free, but should still command a decent level of sales.
Is there not a problem with an open source trial version? Anybody (of sufficient skill) would be able to “unlock” the trial.
Anyway, I wish you the best of luck with this undertaking 🙂
@Hackadelic : True. That’s why there should be additional incentives for purchasing, like automatic updates (an API much like the existing one) and guaranteed support (a “premium” forum or somesuch) for paying users.
[…] time to time the topic “Mixing GPL software with non-GPL software” crosses my www ways, and I often find there is a lot of misunderstanding about what GPL open source is about (as […]
It’s a common misunderstanding that you are locked into GPL for your plugins just becase the platform (WordPress) is GPL-ed. That’s not true. You can make it even non-free.
As this is a broader topic, I just posted an article on it. Thanks for inspiring me. 🙂
Just how do you intend to protect your code from the GPL-only, Matt Mullenweg-loving zombie who thinks it’s their duty to upload your premium plugin to RapidShare or every bittorrent site available to kill your profits?
This really happens. There’s plenty of crazy GPL/Matt followers out there that do this sort of underhanded stuff.
I think it’s typical for premium plugin developers to see their plugin’s sales skyrocket initially and then taper off due to piracy. Have you considered protecting the code via something like Zend Guard?
My stance on protecting WP plugins is the same as for any other software – if it’s good enough, it will get cracked/pirated no matter how well it’s protected (and if it’s not good then no-one would buy it anyway).
I will implement some simple key verification, and a valid registration key will be required to get updates, but that’s about it. I’m targeting people who sometimes buy software, not those who’d do anything to get it for free.
When it’s finished? I am so much on the plugin.
Most of the features are done, what’s left is automatic updates, key checking, testing, etc.
I don’t recommend ever making a commercial plugin with free unlimited support. That’s business suicide. Ship it with 30 to 60 day support and then make your ticketing system detect the end of that and require that they go through a paypal form to get another 60 days of support for like $10 USD. It’s easy to get someone to part with $10 USD.
In my experience, it’s not that bad. I have a couple of commercial plugins and the number of user inquiries is surprisingly low for most of them.
Thanks for this post. I definitely agree with what you are saying. I have been talking about this subject a lot lately with my father so maybe this will get him to see my point of view.