From 2007 I am building my websites on wordpress. WordPress is the best content management system around and whenever I have a client with a non-wordpress site I suggest him to move to wordpress. WordPress is customizable and you can basically do whatever you want. There are many plugins available that will let you to build social networks, forums, etc. Past few years I turned several ideas into WordPress Plugins. It seemed conveniently to use their framework to build powerful applications, instead of building standalone applications and services.

After 4 years of development I came to the conclusion that this is not a wise approach. Why ? Most of the services and applications can be developed standalone, and to be integrated in websites by placing a javascript code ( like google analytics, optimizely, etc ). I am not thinking about the potential user ¬†base that I might lose if I build a wordpress plugin. Usually, wordpress users are the target of my services related to web development and internet marketing. This is not the reason I don’t consider wordpress plugins as a good business model for services and applications that can be built standalone.

There are several factors that I will detail in the body of this article.  1. Compatibility.

Despite the guys at wordpress are working so hard to provide a great API for developers, and the fact that the wordpress is the most popular CMS, and that more than 20,000 developers are building wordpress plugins, there are many factors outside of WordPress control that may influence the compatibility of a plugin. Since I started to provide support for my plugins, I faced numerous cases when I had to think about a workaround. For example, when I worked at Wp Auto Affiliate Links PRO, I decided that it is the best option to provide some data upon request, so that the plugin will be smaller. That data is needed only for design so connecting to our servers wouldn’t affected customers website load speed. I had several clients reporting that this function does not work. I investigated and I found that there are some server configuration that does not allow lading external URLs. I added 2-3 MB of data in the plugin and I got numerous reports saying that they cannot install the plugin because when they try to upload the files the servers say that the upload limit ( of 2MB usually ) has been reached. While I cannot force all users to strictly use a ftp client when uploading the plugin, I practically had to have 2 versions prepared.

Common compatibility issues:

  • Server file upload size limit. While most servers allows more, there are a lot that limit this to 2MB so there is the limit for your plugin too.
  • PHP External connections are not allwoed.
  • Some libraries are not installed: mbstrings, curl, phpsoap, etc.
  • Different PHP Versions
  • Issues with other plugins

 

2. Setup and Usage

A wordpress plugin is very easy to be installed, but a good percent of possible users are not the one who are maintaining and developing the website. In this case, the one who have to make a decision won’t be inspired by “wordpress plugin” terms that you are advertising. A lot of questions will be raised and he have to ask the developer if the plugin is ok. Most of the decision persons don’t even know that their site is built with wordpress.

On the other hand, if you host the service yourself and you only give to the webmaster a small javascript code, the words: “insert this code in your website and you’re done”, seems a lot easier. And if it is not wordpress dependent, it can be installed on any website.

3. Updates and Support.

Every user can manually or automatically update a plugin, but let’s be honest, how many times a month do you check for plugin updates ? I reckon that I check only once every few months. Providing a hosted service will empower your users to take benefit from every update as soon as it is published. Bugs can be fixed immediately and for all users at once.

Since the plugin is installed on the customer website, it is harder to offer support because you will need an username and password to access the website where it is used so you can see what happens there.

 

4. Subscriptions.

Subscription based services are most profitable for developers, and they get the best maintenance. If you just sell a wordpress plugin as a software, people will want to pay once for it and then use it as long as they want. Fair enough. But, since your provide the work for the plugin continuously, and you provide unlimited support, it will be fair if you get your money month by month, based on your customer numbers.

On the customer side, if the plugin does not generate enough sales for the developer to continue developing, you may end up with an outdated plugin that will never be updated. A workaround on this issue, is to give the plugin free, but to charge for some premium features that are available only for monthly paying customers. If you finally get in this situation, you will have to maintain both the wordpress plugin and the API on your side, and both plugin admin page design and your website design. You will have to provide a lot of work for a plugin only.

5. Getting ripped

If you give your plugin for money, the customers will download the files and they can redistribute it on pirate sites and let you with nothing. In practice, this is not that bad. Most clients will buy it to get support and updates, but other people can get your code and build another plugin based on your work. It happened to me, but luckily that plugin does not had even 10% the popularity my plugin had.

To avoid this, you can leave some important data on your server and give it on demand, but you may end up with unnecesary compatibility problems. The others solutions which includes encoding some parts of the plugin or to block the usage with different methods are just not good habits and they can be worked around very easy.

6. Feedback and Interactivity

If you provide your visitors with a tool hosted on your website where they have to only insert a javascript code, you can track the usage and to know what are the features most used by your users, if there are issues on any part of the website, etc. You can have realtime stats and you can instantly know when something went bad.

When something goes bad for one of your clients, there might be some compatibility issues, or conflict with another plugin and it is very hard for you to investigate and fix the issue. Even if it is time consuming, you have no way but to install a testing environment similar to your clients so you can try to figure out what is happening. However, mostly, the issues are created but some customization on the environment that you can’t track, or because the plugin had a previous error and created some bogus data that is affecting the working right now. The only way to really find what is happening is to get access to the customer website. There is a chance that you will be refused and they have all the right to do it.

7. Trials and Freemium

When you are starting out and there is no other way to prove that your work is great, the best solution is to let users test your product and see if it is worth it. This will also let you improve it. However, if you are developing a wordpress plugin, there is no way to offer trials, unless you hadrcode some licence code or security code into the plugin files. If you go this way you will have some problems: the user can remove the verification code and use it forever; external connections has to be made that slows the website; security scanners plugins can mark your plugin as dangerous. If you provide your software as a hosted service, then you can offer trials and after 30 days you can ask them to pay or suspend the account.

A best way to let the world that you work is great is the “Freemium” concept. In this case, you can offer the main features for free and to ask for money for premium/advanced features. This works great because people can test the application, to see if it worth it, spread the world about it, get feedback and some of them, usually 20-30%, will pay for the premium version. This strategy is very effective when you start and no one knows anything about your plugin. If you have a wordpress plugin where you want to provide premium features, you will have to maintain 2 plugins at one time. The free one will go separately, and when the user want to upgrade he will have to get another plugin with the premium features. Not only that you have to work on 2 plugins at the same time, you will also have to think of ways to interconnect the plugin so when they go from free to premium they won’t lose their data.

Conclusions

WordPress is great and you can do a lot with it. I will probably code wordpress plugins in the future but only for features that can’t be offered as an external service. There are many great plugins that enhance wordpress user experience that cannot be provided as a service: membership software, spam protection, security plugins, seo plugins, ecommerce plugins, and many more. However, for everything that can be offered as a service: advertising, analytics, email marketing, content testing, etc, you will find services that offer way more features than wordpress plugins which does the same.