How to Create a Premium WordPress Plugin

Premium WordPress PluginsOne of the biggest misconceptions among WordPress plugin developers is that you can’t legitimately make money from your plugins. This is complete bunk — the truth is if you develop a plugin that complies with the GPL and provides value to your users there are actually many ways to legitimately make money from it.

In my presentation at OC WordCamp, I’m planning on covering a complete process you can use to release a premium plugin including:

  • Selecting the type of plugin to write — This could be the hardest and most important part of this process. If you’re going to spend as much time as it takes to create a valuable plugin, you better select a feature set that you’re interested in, other people actually want and has a market large enough to make the development and ongoing maintenance of the plugin worth your while.
  • Technical differences between free & premium plugins — WordPress offers an awesome repository for deploying and upgrading free plugins — but not for premium ones. Since WordPress’ entire plugin repository and code-base setup to only deal with free plugins, you’ll have to create your own system for deploying and upgrading your premium plugin. This system will no doubt include code within your plugin that will link to a plugin repository of your own. Sound hard? Don’t worry, there are several other plugins and software packages that will help you to get your premium plugin deploying and able to auto-update in no time.
  • Legal considerations — WordPress is released under the GPL and is fully open source — doesn’t that mean that legally speaking premium plugins need to be GPL and fully open source? Well, yes … all plugins, including premium WordPress plugins need to be GPL and hence, fully open source — but that doesn’t mean you can’t charge money for them. The GPL restricts your plugin to being “Free as in Free Speech,” not necessarily “Free as in Free Beer.” πŸ™‚
  • Strategy — There are many different ways you can release a premium plugin and you’ll want to select the one that works the best for your offering. Some of the strategies that I’ll cover include free plugins (monetized with advertisements), premium plugins, freemium plugins (premium plugins that offer a free version), and plugins that connect to a premium service you’ve created.
  • Marketing & Building Credibility — You may love to program in a dark room and only require that a bucket of mush be slid under the door every day to keep going — but you’re going to have to get out there and market your plugin if you want it to be successful. My presentation will cover some of the basics of getting your plugin some visibility.
  • How to get a system up quickly to deliver your plugin — This is where the nuts & bolts come into play — I’m planning on covering this from the technical setup to mobilizing your community and getting some help.
  • Ongoing Support and Updates — I’m surprised how many premium plugins make no mention of support or updates on their landing pages. It is absolutely critical to the success of your plugin that you plan out how you’ll put this in place well before you release your plugin.

I’m really excited to give this presentation at OC WordCamp — I think it will be highly useful to anyone wanting to release a premium plugin or service. Hope to see you there!

This entry was posted in General Awesomeness, Presentation Topics and tagged , , , , , , , , , . Bookmark the permalink.

12 Responses to How to Create a Premium WordPress Plugin

  1. I’m also looking more into real-time web and push notification rather than pull and polling notifications. I am thinking of engineering a plugin update server that relies on plugins registering themselves with a webhook callback and using twisted (python server) and hookah as the request dispatcher (http://github.com/progrium/hookah)

  2. @blair, In looking for your priliupdate.php I see in the WordPress svn that file is no longer included in the models folder after ver. 1.4.39 after 1.4.4 the file is gone. Has the class been moved into another file. I will grep the rest of the svn repo to find it shortly but I thought I’d ask before digging in. Also, in one post somewhere you mentioned your mothership server update code would be available as a “Pro Plugin Updater Premium Plugin” meaning it would be available for a reasonable fee, and in other posts you mention it will be released to the public, with no mention of it beaing a premium plugin. Have you decided which way you are going to go with it and how much closer to an ETA do you have? I’d imagine there should also be a way to get the code that is being used at wordpress.org since most of all that code should be GPL’d too, no? WordPress.org’s svn has several tools folders and poking around in there might turn something up.

  3. I put the slides for this presentation up on http://makewpplugins.com — go check it out. I’m preparing to release more of my server side update code on that site soon as well… If you have any issues, just let me know.

  4. Brandon Dove says:

    @joehall We’re going to be streaming the event live. Check the schedule for when Blair’s speaking and you can listen in.

  5. Well, trust me, my methods now are way better than the methods I initially came up with too πŸ˜€ …

  6. Josh says:

    Thank you so much, I should be done with a couple
    of my plugins by then, and I’m sure that your methods will be a lot better than the methods I’ve been coming up with.

  7. Josh — yeah, its really hard to find a concise set of instructions on how to do this … trust me, I’ve looked too πŸ™‚ … I’m planning on posting the materials from this presentation afterward — so you should be able to get your hands on it.

  8. Josh says:

    Will you be posting all of this information somewhere after the conference? I also am unable to attend, but all of the information you are talking about above are things I’ve been looking for days to find out how to do.

  9. Joe — awesome! I may take you up on the help at some point for sure πŸ™‚ … As for that update code, it isn’t in Pretty Link Pro, its just in the free version of Pretty Link — it has to reside there so that people can upgrade to Pro with as little effort as possible (all they have to do is enter the credentials they get from the mothership and then they can upgrade automatically)… BTW — I really liked your site, there are some amazing quotes in your most recent post — truly inspirational for anyone with a business or looking to start one.

  10. Joe Hall says:

    Thanks Blair! I will take a look at the class in Pretty Link Pro in a bit…. I have already kinda decided to go with wishlist member. Your XML-RPC/update ping plugin sounds great. If you need help debugging or a beta tester let me know! Looking forward to the video cast of this event!

  11. Joe — Yeah, I don’t blame you, that’s a big trip. When I started writing premium plugins, the update mechanism was difficult to figure out. In fact, the initial update mechanism on Pretty Link Pro that had some problems … but over the last year I’ve spent a lot of time getting a really good system for providing premium updates. Here are the elements of a successful system you’ll need:

    1. Client Side Update Code — in this case, the “client” is the blog running your plugin. This code is fully contained in pretty-link/classes/models/PrliUpdate.php … You can take the class, rename it, change the variables in the class constructor (before the comment ‘Don’t modify these variables’) put it in your project. This is the code that will connect to your “mother-ship” which is to say, your server which will facilitate the update.
    2. Server Side Update Code — This code will reside on your server — you are the “mothership” for your plugin and all instances of your plugin will query your server to receive updates. You can implement the server code any way you want, my preferred method is to have wordpress running on my server which has an XML-RPC interface that my plugin instances out in the wild can query for updates. To make this easier — I’ve created a plugin that I use and works with the PrliUpdate.php class. Shortly after OC WordCamp, I’m planning on releasing this plugin to the public with some instruction for other plugin authors to use.
    3. User Managment / Payment System on your website — I prefer using wordpress as my update server using my plugin updater plugin — but since this site is where the user accounts for your customers reside, you’ll want to use some software that will automatically create accounts when a user pays. For this there are 2 software packages I’ve used the first is Amember (aff link) — this isn’t a wordpress plugin but works quite well. Amember is a full featured solution with plenty of payment options and a built in affiliate program. I use Amember on my Pretty Link Pro solution. I’m currently working on another premium plugin and for this one I’ve switched to use Wishlist Member (aff link) — even though it doesn’t have all the payment options or a built in affiliate program, it has better integration with WordPress and you can use a third party site like 1shoppingcart.com to handle your payment & affiliate stuff. It’s really slick. The other benefit that I’ll talk about in my presentation of setting it up this way is that Amember or Wishlist will also protect your site to premium access only which will enable you to easily roll out a support forum, ticketing system or even a social network for your paying customers… There are plenty of plugins for wordpress that will accomplish these features.

    I hope this doesn’t confuse more than help. I’m currently working on slides for the session and more granular documentation — which I’m planning on releasing … so you should be able to get a hold of it no problem.

  12. Joe Hall says:

    I would kill to be at this talk. unfortunately I live on the other side of the country and have to work….I am in the middle of developing several premium plugins and one of the areas that I am most concerned about is what you call above Technical differences between free & premium plugins. You stated,

    Don’t worry, there are several other plugins and software packages that will help you to get your premium plugin deploying and able to auto-update in no time.

    Would you mind sharing some of these resources for folks that can’t make your talk? i know that more than just myself would really enjoy learning about this.

Comments are closed.