Learning the WordPress plugin business … the hard way.

WordPress Plugins

When i first started creating WordPress plugins, it was simply because I loved writing code, and wanted to give back to the open source community, that had already given so much to me.  I released numerous free open source plugins, and actually had no plans to ever create any paid plugins, that was, until I started building a website for someone using the newly released WP Job Manager plugin.

Backstory

While working on building this website, my client consistently wanted to make changes to the fields that were on the submit form, which required me to write new or update PHP code to do so.  After the 10th change he wanted to make, it was clear this was going to be a constant thing, and I needed to come up with a solution that would allow him to make the changes, so I could focus on actually completing the website.  At that point I decided to spend time building a plugin he could use to do this, and after talking to others who were using WP Job Manager, it was clear that this was something the community needed.  At this time WP Job Manager was very new, and didn’t even have the Resumes, or many of the other available addon plugins currently available.

This was the birth of the WP Job Manager Field Editor plugin … and having a full time job, I ended up working day and night, sometimes not even sleeping before going into work in the morning, just to complete the plugin as quick as possible.  I assumed based on the amount of people asking me about it, that I could probably start selling the plugin and make a few hundred bucks off of it.

With the initial release of the plugin, the first month I had probably 20-30 purchases, the next month that doubled, and before I knew it, I had tons of clients requesting new features, asking about how to do X or how can I do Y, etc etc.  With WordPress growing tremendously, it was starting to become clear that the plugin market was oversaturated, and it was hard to tell what was a quality plugin, quality developer, and what wasn’t.  Then add to the fact that a lot of developers would release an initial version of a plugin, and basically abandon it (only providing small bug fixes) so they could work on other plugins to build another revenue stream, I had to make a decision on how I was going to proceed.

Deciding on Plugin “Worth” or Cost

Having to make a decision on how much a plugin is “worth” was very difficult for me at that time.  Being as though i’ve built well over 50+ sites, i’ve now been on both sides of the WordPress plugin ecosystem.  Being a client of other developer’s plugins, as well as selling my own.

While working on these sites, if I needed to add some type of feature or enhancement, and there was a plugin available to do this … if I valued my time at say, $50 an hour … if I could buy a plugin for the cost of only 1 hour of my time, you can bet I would buy that plugin to be able to focus on other things, instead of spending 12+ hours to build my own … essentially in time, costing me around $500+ or more.

Plugin Evolution

Taking that into consideration, many WordPress developers have different ideas of how a plugin should evolve, how much it should cost, and what should be included with the purchase of a plugin.  Yes I understand that the amount of time that has been put into a plugin, is always going to be more than what is charged for it … but at the same time, you still need to make the cost economical for the people who will be purchasing it.  Take WooCommerce, or Easy Digital Downloads addon plugins for example … the majority of them cost anywhere from $29 to well over $100, with most of WooCommerce ones being $99.

The one thing you will notice though, is that the majority of WooCommerce plugins that do have a high price tag, end up being the ones that continue to receive new features, advancements, and don’t just end up being abandoned because the developer had moved on to something else.

This is what I wanted to bring to my plugins, something that isn’t abandoned after initial release, continues to receive new features and updates, as well as support without runarounds … but at an economical cost for the people who would be purchasing it.  A lot of plugins out there are marketed towards developers, but as I have now come to realize, more and more increasingly, the client is an individual looking to build their own site without a developer, instead of a developer building a site for a client.

The Support Runaround

If you’ve been using WordPress for a while, and purchased plugins from other developers, while trying to get support, you have more than likely been able to experience the runaround that some of them end up giving their clients.  When I say runaround i’m referring to the canned (pre-made responses) or basic responses to support tickets, that either place the blame on another plugin you’re using, the theme you’re using, or something else … outside of their plugin.  Having experienced this myself, it can be VERY frustrating, especially when in the end you figure out it IS a bug in their plugin.   I knew I had to do everything I could when supporting my clients, to not be one of those developers … to not make my business specifically about making more and more money, but focusing on providing a quality plugin, and actually providing support to clients, even if that means it may not be related to my plugin.

If you’ve been a client of my WP Job Manager Field Editor plugin for a little while, you have probably already experienced this, and it’s no lie when I tell you that I would constantly get emails from clients just thanking me for helping them, even when it wasn’t something related to my plugin … instead of just passing them off or placing the blame on something else.  You’ve also probably experienced and seen how I have been constantly adding new features, all of which have been requests from clients.  Instead of replying to a ticket saying, no that’s not an available feature, I have worked as hard as I could to add these new features, to actually listen to clients and take their feedback and do something with it.

The Downfall

Now with that said, that and some of the things I describe below, has also lead to the recent delays with support, which is absolutely not something I am happy with, and has really been bothering me personally for a while now.  The unfortunate part is that when first starting all this, I thought I could handle everything myself no problem … the business aspects of it, dealing with the website, adding new features, bug fixes, providing above and beyond support, and dealing with the day to day issues/operation.  I have now come to realize that is not the case, and like a lot of things I have had to learn the hard way, this has ended up being one of them.

Add all that to the fact that 2016 has been a horrible year for me, between me trying to be the best at everything I do in regards to my plugins, and the personal issues I had, it seemed like there wasn’t any light at the end of the tunnel. If you’re interested to read about some of the personal issues I had this past year, I wrote a blog post about it here:

Why 2016 hasn’t been the best year for me …

The unfortunate part about all of this, is that in the end, instead of providing top quality support for clients like I had always planned to do, I ended up doing the opposite, and caused clients to have to wait an absurd amount of time just to get a response to a support ticket.

Getting Back on Track

Already having a lot going on in my personal life, a good example is the recent release of the WP Job Manager Emails plugin.  With numerous bug reports and feature requests coming in, I starting taking time to focus specifically on finishing the update, which my estimate of how long it would take to complete … was completely off, and due to many unforeseen issues, and compatibility that had to be worked out.

WP Job Manager Flow

WP Job Manager Flow

I initially started by attempting to use the existing code base, and add the new features I wanted to include … the unfortunate part about this, was due to the way that the plugins it had to be integrated with, it seemed that after one fix, another bug came up.  After a week of dealing with this I had to finally decided to start rewriting the code, because putting bandaids on something, is not the right way to fix it.   To make matters worse, once I thought I had everything ready to go to release … I figure out that integration with Applications, is going to have to be completely redone … enough to where I had to actually draw a flow chart just to understand and have a reference as to how applications work with settings and combined with Resume Manager (if you use both plugins you probably have already experienced the confusion in the settings).

Meanwhile all this is going on, support tickets are starting to pile up … knowing that most of the issues will be resolved by the update I need to release, I try to work out the bugs in the morning, with plans to get to support tickets that evening.  The downfall of this plan, was that majority of the time these bugs were not fixed by that evening, and before I knew it, my girlfriend was coming into my office asking me when I was going to bed … at that point realizing it was already midnight!  What started out as being something that should have been completed in a week or less … ended up being way more than that.

The Need for Help

Eventually I realized there was a problem, and I needed to hire someone to help get things back on track. The problem with that is, finding someone who is competent, and will provide quality support that I expect my clients to be given … and the fact that it would take me more time to train them, than it would to complete the update.  I ended up getting to a point where I was completely stressed out, causing me to work on the code base during the day, and not even realize that “yup not going to be able to release it today” …. the problem is that this happened for over 2 weeks, which ultimately led to horrible support response times, which is not what I want or expect my clients to have to deal with.

Taking Responsibility

Needless to say, the updates have been completed and i’ve been talking with multiple people that i’m looking at bringing on, to help reduce the load on myself, and bring the quality of support back to what it used to be.  If you’re a current plugin client of mine, I do sincerely apologize for any inconveniences this may have caused for you as I know how frustrating it can be to not get a reply to a support ticket … especially after multiple weeks … I would be furious.  Now granted there is no guaranteed support response time, but having to wait over a week is completely ridiculous, and I understand this, and will be doing everything I can throughout this next week, to try and make this right.

I do take full responsibility for the recent support problems, and unfortunately this is majorly due to the fact that at heart, I want to provide my clients with a plugin that doesn’t have bugs, continues to receive new features and updates, and something I can be proud of.  If I had a business manager, i’m sure he would tell me to stop updating plugins and start creating new ones, but when I started creating plugins that is not the way I wanted to run things!  In hindsight I think the problem is the way I decided to handle things, and if this was the way I wanted to run it, I should have hired someone a while ago, so I could focus on specific aspects of the business that I wanted to make sure ran a certain way.

Again, i’m sorry for any delays I may have caused you, and hope you can understand that between the difficulties i’ve had this year, and learning to run a business, it’s been a rough road, but I promise to make it right, and you can rest assured knowing that unlike majority of businesses out there … it’s not all about money to me … it’s about providing a quality plugin, that works, and continues to evolve, and support that goes along with it.  Trust me when I say, i’ve been very hard on myself about the support problems, and will continue to be until I can make things right again.

Thank you for your understanding, and patience while I work on growing this business back to what it started as, and will continue to be from now on.

 

Myles

Orlando, FL

Did this post help you?

Give back and rate it for me!

Related Posts

  • CJ

    I appreciate the openness and the clear desire to do a good job. However, this doesn’t make up for the fact that I ended up paying for the plugin, then under tight deadlines had to abandoned it after mostly crickets from you with my support ticket.

    • Sorry you feel this way, and yes you’re correct it doesn’t make up for the long delay in support response, but you did not provide any details for me to look up your issue, so there’s not much I can do without more information.

  • Dan

    You are a refreshing exception to the rule among WP developers. With more than 5 decades in business I completely understand being overwhelmed by success. It’s important to know that at some point in your transaction with customers, it’s not about the money. The best clients are willing to pay for premium help. And pay well. I was once told that when you have too many clients to support, raise your prices. I have found that to be true.

    • Thank you for your kind words, I do appreciate your response!