An open source project means that anyone can take and freely modify the source code, and also re-release it as a different product. WordPress is open source, as are the vast majority of WordPress plugins. As someone who makes their living off of WordPress, I have to ask myself the question “is open source right for this plugin?”. It is a really important question and one that I’d like to dive into a bit deeper.
Some Reasons to Open Source Your Plugins
One of the biggest advantages to open source plugins is that other developers can help you out. Since your code is open and available to everyone, it is much easier for other developers to contribute bug fixes and enhancements.
In the realm of WordPress plugins, the WordPress repository is also a tremendous way to gain exposure for your plugin, since the user base there is about 1000 times larger than anywhere else. If you want to put your plugin in the repository, it must be open source.
There is also something that just feels good about giving something away to anyone and everyone. The gratification of having a user of your free plugin say something like the quote below is extremely heart warming:
Thank you so much for your awesome plugin, it really saved my day. And thank you for making it free!
Why I Chose to Open Source Easy Digital Downloads
Easy Digital Downloads is the big project that I have been working on for the past couple of months, and it is open source. The plugin resides on the WordPress plugin repository and is free to modify by anyone.
There were a few of reasons I open sourced the plugin:
1. I really wanted to give something large away for free. Prior to writing EDD, I had written a lot of little plugins that were given away for free, but most of my larger ones were part of my Code Canyon portfolio, and thus closed source. I suppose it might be a side effect of working in WordPress for a long time, but I had a really strong itch that needed scratched, and I could only get to it by giving away a really large plugin.
2. An ecommerce plugin that is only used by a couple hundred people doesn’t do anyone much good. One of the most significant challenges I have found that comes with ecommerce development is accounting for all of the things you didn’t think of (sounds simple, I know), but it’s true, there are so many aspects to ecommerce that you never think about until a user points it out. Without a lot of users / testers, there is no one to find the things you missed.
3. I wanted to build a plugin that was created by the WordPress community. What I mean by this is a plugin that is frequently contributed to by other developers. When a code base gets large enough, it can be extremely difficult to manage everything on your own, and since I’m mostly a one man team, this was really important. To date, 11 developers have contributed code to Easy Digital Downloads. By engaging other developers you really get into the spirit of what open source is all about. Tom McFarlin wrote a great post about why he contributed to EDD and he does a great job explaining how open source can help improve you as a developer.
4. Believe it or not, open source can actually be an extremely lucrative business model, when done right. I love giving code away, but I also enjoy being able to provide for my family, so simply devoting all of my time to a project that had no revenue stream was not likely to last very long. By creating an extensible base plugin that allowed for add-on plugins (a model sometimes called “freemium”), I was able to give EDD away for free and generate a revenue stream.
Reasons Not to Open Source Your Plugins
Open source is not right for every plugin. Sometimes you, as the developer, need to maintain granular control over how the plugin is distributed, who can make changes to it, how much it costs (or doesn’t cost), etc.
The plugins listed on my Code Canyon portfolio are all closed source, primarily because in order to generate a steady revenue stream I couldn’t simply allow people to download them for free, since very few users would choose to purchase them over downloading for free.
As pointed out by @leewillis77, I didn’t make something very clear:
All plugins on Code Canyon are open source. They have to be in order to be compliant with the WordPress GPL license. When I say “closed source” in regards to paid plugins, I simply mean that their source code isn’t openly available to download somewhere on the web. If you purchase one of my plugins, or any other WordPress plugin, you are free to modify it in anyway you want.
It may sound counter intuitive, but I generally find that users of free plugins have a larger sense of entitlement than users of premium plugins. Why this is I really don’t know, but I’ve seen comments like the ones below far more often than I care to count:
Your crappy plugin doesn’t work. Waste of a download.
Why can’t you just add feature X?! It’d only take me 5 minutes!
I sent you an email an hour ago, why haven’t you responded? I’m awaiting your reply . . .
The quotes above are all real and I have been on the receiving end of all of them, and many more like it.
An Example of Open Source Goodness
A few days ago I wrote a simple plugin for pulling all contributors of a project hosted on Github. It was little more than a simple short code and I release it as open source. Within 30 minutes of publishing it, I’d already had two different developers submit improvements and bug fixes on Gihub. Evan Solomon sent a very detailed patch that dramatically improved a lot of things that I had neglected.