The cost and challenges of selling WordPress products

Over the past couple years and even more recently we have seen many WordPress business re-evaluating their business models and making changes to the way they sell their products. This is inevitable as businesses grow because maintaining a growing customer base is expensive and time consuming.

We here at WP Ninjas have been thinking about this from day one and although we certainly can’t continue offering unlimited anything for the life of our business we have made it abundantly clear we don’t think the solution is a per product subscription. At least not for the products we offer currently. So in this article I would like to examine the costs of selling WordPress products and some models we’re kicking around to address them. We want to accomplish two things with whatever solution we come to.

  1. Secure a profitable and sustainable future for WP Ninjas
  2. Offer fair pricing that both values the products and services and is affordable for customers

Products not Services

WordPress plugins and themes in my opinion are products. The vast majority of customers buy them for what they do at the moment they purchase them not what they hope they might do in the future. For this reason I like the idea of selling them at a single rate based on how we evaluate their feature set. When you buy the product you’re paying for the work we’ve already invested into it and initial access to the code. That means that a product that sells for $39 is only $39. Nothing else. The product works, do what you want with it.

But what about further development and updates? Great question. Plugins and Themes need to be updated to be compatible with latest versions of WordPress and certainly some more than others.

Further Development and Updates are a Service

Every developer wants to make their products better but it takes an investment of time. And we all know the saying that time is money. Even though that’s the case I don’t know that I like the idea of charging an update fee, even at a small percentage, for every plugin we create. I’m not saying that it’s wrong to do so I just don’t want to put that kind of financial burden on our customers. For the hobbyist, the small business owner, or the developer. I want to help them keep their costs down while at the same time growing our own company as well.

Development takes time and updates take bandwidth, whether automatic or manual. So what if we had a subscription for those services? Better yet what if that subscription was based on the type of user you are and not on each and every product you use? A single site user isn’t getting as many updates as a developer might. Why not give them a break on that cost? So an annual subscription might look something like this…

  1. 1 Site = $25.00
  2. 2 – 5 Sites – $50.00
  3. Unlimited = $75.00

These subscriptions would give you updates of the current development on every product that you own. So you pay for your products individually but you pay for updates with a simple flat annual fee. And those using the most resources pay a little more to cover their higher usage.

I feel like this could be a win win for everyone. Customers keep their annual costs to minimum by not paying a per product renewal fee while at the same time investing in the future development of Ninja Forms and the extensions they use.

If you are with me so far you might be wondering about support. I like this one most of all.

Support should be for Everyone but not Necessarily Free

The thing that hurts WordPress business more than anything is the increasing support requests they get because of a growing user-base. It’s definitely a challenge but I don’t think it needs to be as daunting as we make it out to be.

This is absolutely one of those areas where I think people should pay for what they use. Not everyone needs a lot of support and some don’t need any at all. To factor that in across the board so some people are paying for something they never use while others are using way more than their fair share is another one of those things I just think we can do better. I want to do away with support subscriptions altogether.

The challenge here is that everyone needs a place to ask questions from time to time so you need to have a way that can happen in an orderly fashion. And they shouldn’t have to have a support subscription to do it. So we need a system where all questions and support requests can be submitted and filtered. I’m leaning towards a pay-per-ticket model. Thomas Griffin the developer of Soliloquy once used a model similar to this where you buy tokens for priority support. This got me thinking and I want to take it a little further.

The support process would work like this…

  1. User submits a ticket
  2. After Initial review we determine is this request…
    1. A bug – Then we support for free
    2. A chance to improve documentation – then we do and point them to it
    3. Custom help or completely unique case? If so we move on to step three
  3. We quote the support request within the support thread based on the estimated time to assist them
  4. If the user agrees they can pay within their next response seamlessly
  5. We resolve the request

I love this idea because it gives everyone the freedom to make any request they want while allowing us the flexibility to determine if it’s something we just need to fix or something that requires additional cost. Paying-per-ticket can expedite an issue or secure more custom assistance. My favorite part is that people who don’t need it aren’t footing the bill for the people that do.

This may not work for everyone

Not every company can do it this way. I’m not even convinced that it’s the right way for us but I definitely like the idea better than others I’ve seen thus far. Of course this isn’t something we’re implementing tomorrow. This is meant to be a public discussion of a possible option.

We’ve laid out our idea and now we have some questions for you.

  • Past & Potential Customers – What do you think of this model? Is it fair and/or affordable? Do you like it or hate it and why?
  • WordPress Businesses – Do you think this would be sustainable if WP Ninjas was your business? Do you see any pitfalls? Would you improve on this in any way? Do you like it or hate it and why?
  • Everyone – Any “gotchas” you think we’re missing or things that we haven’t properly addressed?

Please join the discussion. We would really like to know everyone’s opinion.

Comments

  1. says

    I think it’s a good model. From your standpoint it would prob lower ticket volume and could be a somewhat steady stream of income….? For the customer it is a quick and easy way to get something they need done. I would think you’d weed out a lot of the crazy demanding customers.

    As long as there is a fairly quick turnaround…and the process is seamless. i think it could be a great model for support!

    • James Laws says

      Implementation is definitely key here. If it’s a complicated and convoluted process it will turn people off but if done right I think it’s both affordable and sustainable for us and our customers.

      On the turnaround, unless we’re traveling I would put us against anyone. :)

  2. says

    I actually like the model, James. From a consumer standpoint I think it makes a lot of sense. We’re only paying for stuff to get fixed.

    From your end I think it can get a little bit tricky just because the discovery phase of support I think gets overlooked a lot of times. Sometimes diagnosing the problem takes even longer than fixing it does. A mechanic or plumber will rarely check things out for free. I understand the costs associated are different because we’re all online but it’s still a matter of trading time for money.

    One model we’ve been exploring as a company who does support is having developers sell a support license, but as more of an insurance policy like you’d get from Square if you bought an iPhone. As a third party we’d provide support for a given amount of time, but the support license itself would be sold by the developers as “Ninja Forms Support provided by [Insert Company Name Here].

    It would essentially be an outsourcing model but an extremely transparent one. Obviously a good relationship of trust has to exist for that model to work, but I think it has some merit if it’s executed the right way.

    Anyway, my two cents :)

    Another alternative is to follow a traditional software pricing model that does include support but charging 10 times what we do now. It’s one way to go, but transitioning to that point would likely be a painful process.

    I’d love to find a model that benefits everyone involved.

    • James Laws says

      Ryan, it is tricky indeed. In our experience I can usually determine if its a bug with our code or something more custom. Not always but I think I’d be willing to swallow those few exceptions. We could also add that time into the cost when submitting it to the customer and if they agree we have no issues. Again I think we could swallow the few where it doesn’t work our neatly.

    • says

      Ryan, the discovery point is a good one – I originally thought it to be the one flaw in this otherwise solid approach. I’m not totally convinced though because in a sense this system is fair AND provides us hidden value as developers, such as:

      1. the premium requests help offset the cost of us addressing bugs that are our responsibility.
      2. It also gives us a great window into what customers want. They don’t have to sign up for an annual support subscription, so they don’t write off the support forums altogether. Lower barrier to entry means more submissions, ideas and bug reports that just come in for free.
      3. It gives us a way to handle people that think your plugin should solve their lack of knowledge of WP. New to the game? Fine, but we can’t train you on out of scope stuff unless you pay.
      4. These discovery tasks are a good way to test and train support staff. Have a new support agent? Have them investigate the reports and classify them as in or out of scope and propose solutions to their manager before sending them to customers. It’s a good low fidelity exercise that forces staff to use and troubleshoot common problems with your tools.

      That said, from a psychological standpoint, I don’t like, as a customer feeling like I have to invest a little bit of money now and who knows how much later.

      As a side note, I think killing support forums is a key to this. Why do we still use support forums? I can’t think of a worse way to organize information on solving one problem than to mix it amongst 1,000 other problems written in a non-standard way.

  3. says

    Is customer support taking a significant amount of product-management time? If so then it could make sense to charge separately for the support – a token system as mentioned makes some sense, perhaps include one or two free support incidents with a purchase. This could allow some reduction of the base price…I figure that not every user needs support, or as much of it, so why punish them (all) with higher base prices? Charge a price of the product+updates, then charge for the support if it is needed.

    • James Laws says

      Support is always an ever increasing cost no doubt. We try to mitigate it by improving documentation but people always have questions.

      The nice thing about this method is that everyone can submit a ticket and its doesn’t mean it’s going to turn into paid support request. I want to make sure it’s easy for everyone to ask questions and be heard.

  4. Jason Harle says

    I like the proposed solution, I think it’s fair and logical. I would not be turned off by receiving a quote for any custom development or related support that would help me fix my problems. In fact, I have worried in the past about asking for too much help, because sometimes the lines can blur between product support and development work. So this option leaves me free to ask anything, and you’ll just quote me if it’s more of a request for dev work.

    I agree 100% that enhancing your Documentation and Code Examples/Tutorials would go a long way to slimming down your number of requests. I would love to see a section of Tutorials and Examples of things that can be done with Ninja Forms and the Extensions. I’m not much of a programmer, more of a front-end guy, so this would help me a lot.

    • James Laws says

      Thanks, Jason. We really appreciate you as a customer. We really love supporting our customers and helping in any way that we can. This would just help out if support ever get’s out of hand or for those fringe cases where it really is like custom development.

      Documentation is a huge deal for me right now and whenever I have free time my thoughts are on how to make it better and love your ideas of tutorials. We have some code examples but I think your tutorials idea could really make it even better.

  5. says

    I like this model, though I think the risk is in the time spent determining the nature of a reported issue. If you’re confident in your ability to identify the bugs quickly, that’s fine; but I find that in supporting our products, it sometimes takes a while to figure out exactly whether it’s a bug. Especially since our customers are all over the world, their description of the problem may sometimes be a little ambiguous, so it ends up taking a few emails to work out precisely the issue — and by then I’ve already committed time to finding the exact problem

    I guess I personally lean towards a support plan, but one that is relatively inexpensive (say $20 for a year). All our products are paid out of the gate, and we’re committed to supporting them, but down the track I think it will make sense to put a time limit on how long we’ll support for. So for example, we’ll support for 12 months after purchase, and if you have a need for support after that, you can purchase a support plan.

    Cheers,
    Eric

    • James Laws says

      Eric, my problem with a support subscription is that a person can still pay $20 or even $100 a year and use support enough that it’s still a huge loss. Heck, two hours of support on that highest level and they’ve already exceeded our hourly development rate. With a pay-per-ticket model we can absolutely help mitigate that kind of scenario.

      I’m confident in out ability to identify quickly whether something is a bug or not in 99% (a number I just pulled out of thin air) of every support ticket we receive based on our current track record. I think we can handle the other possible 1% if we can’t recoup with the customer during resolution.

      Doing the way you are early on to gain traction and brand recognition is fine but yeah, you probably need to put a limit on what you will and won’t do and for how long.

  6. LoneWolf says

    You have to make a profit and feel enthused with your work. I am in the insurance industry. As I read through the news letter a vision of Emergency room visits came to mind. Today, to curtail the abuse of visits to the Emergency room at a hospital, the carrier now charges a fee “if” they are not admitted. There are alternatives.

    In your scenario it boils down to either lack of time for the ninja users search for answers in the forum or something else. If our time is of value then we as users have to ask ourselves. Is it better and thus more efficient to ask a question and pay for your time (assuming a prompt response) or spend our time searching.. But we certainly cannot expect that we can take up your time for free!

    If the charges are set to a certain number of sites.. then we as users either pass that cost along or accept it as an ongoing expense…

    I myself would like to see the Ninja Form to .pdf and or be able to map the data to some source.. Maybe I can already do this and just need to look for the answer. Maybe I do not have the time and would be willing to pay for a detailed instruction on how to do this… but I certainly do not expect to see a profit making company survive if it does not make a fair and equitable profit…

    Thank you for your forms.

    • James Laws says

      Great perspective. Our mission is to make sure everyone has an opportunity to be taken care of no matter what. Some requests certainly may take longer than others. If a customer has question about how to do something it takes us no time at all to point them to a document that explains it. It’s out pleasure to offer that service for free. If a customer wants us to implement that document on their behalf there might be a nominal fee. Either way I want our support ticket system to be a safe and easy place for everyone to be able to seek assistance. Asking a question is never a drain on our resources. What’s required to assist the user sometimes is. I think our idea gives us a chance to handle any situation.

      Glad to have you have a user. :)

  7. says

    I think the support idea is good. I actually quite like how Usability Dynamics (wp-property) run their support. They give you support funds for every premium product you purchase and if you need support from the developers rather than the peer forum you can request premium support with your funds, or pay to add more funds. Each premium ticket allows you 30 minutes of their time and if the problem is beyond that scope they will let you know. Similar, I think to what you are suggesting.

    My only worry about paying for upgrades is that as a small freelance developer I don’t want to have subscriptions on behalf of my customers. I fear I would go with free versions of plugins as I don’t think my customers would understand why they needed to pay a yearly subscription for upgrades and I wouldn’t want the extra fees. I would pay to use the plugin on 5 sites as this is a one off fee, I wouldn’t want to commit to a subscription for upgrades. These are just my thoughts whilst I was reading and I haven’t really thought too deeply about it or know what the answer is.

    • James Laws says

      Nicki, I think our idea is similar to what you describe but perhaps better. The reason I say better is that you never have to purchase pay to add more support requests. First contact (per ticket) is always 100% free. We then evaluate the ticket and then determine if it needs to be escalated to a paid support request. This way if it’s a new user, bug report, or just a simple question that can be answered by pointing them to documentation, we can just help them. If it’s beyond that and moves into consultation or custom development we can assign a cost and the user can choose if they want to proceed. I’m not sure I’m doing a great job of explaining it but I love the idea even more every time I try. :)

      As far as the upgrades subscription, they are a necessary cost of doing business. We strive to keep it affordable but I agree with you. I always get my clients their own subscriptions. It’s their cost of running a business. The question is can we keep it affordable for single users and developers a like. I think our idea above is the closest I’ve come to on this so far.

  8. says

    Ninjas,

    I think it’s great your thinking about different pricing models as well as posting these thoughts for your community to comment on.

    First of all, I think that if there are security related updates that those should be immediately available to everyone. But this creates several problems, you either give updates away for free, or you have different branches of code for every single release and then add on security related fixes to those branches which creates a ton of overhead for developers. As a developer I don’t want to support multiple versions, I want everyone to be running the latest and greatest version for security and to make all support requests easier.

    Premium support should be available. Either for X months after purchase or X number of tickets. I’m actually leaning towards X number of tickets right now and then you can give users more tickets if they contribute on GitHub, submit a language file, or discover a bug. And for users who use a ton of support they’ll have to buy more.

    Thanks again for sharing your thoughts on pricing. I hope to have many more discussions like this. :)

    • James Laws says

      Patrick, I would have to think the security aspect through a bit. It also depends on what cause the security issue. For instance if it was caused by a change in WordPress, Third-Party API, new Server configurations, I would say that reasonably falls into one of the reason to maintain an update subscription. I agree I don’t want to have to maintain a ton of branches of code for each of our products.

      If you see my comment on Nikki’s post above I think I address this nicely. There is never a barrier in place for any user to submit a ticket. I think Kevin and I are reasonable. We have no desire to try and get rich off of support. We actually hope to make out revenue on sales and update subscriptions. And charge we place on a support ticket is to recoup on lost time. Our first goal is to be answer the absolute highest number of support tickets completely free. In fact I’ve made it my mission to continually look for ways to improve our documentation and create other ideas to keep the need for time consuming support to an absolute minimum.

      Support tickets that consume a lot of our time is bad for us and for our customers. :)

  9. Aric says

    Hi James,

    As a recent customer, searching for a logical smart form solution I ran across your product. I was able to “buy in” to what I needed for around $30. The other form plugin that we were seriously considering was Gravity Forms. What sold me on your product was the demo site where I could actually try the functionality I was evaluating, before purchasing, to see if it would work for what I needed.

    I even asked a pre-sales question, as I discovered what was a “know bug” in the from logic add-on and got a timely answer. Thus far I am really impressed with your customer service and the functionality of your product. It has easily saved me a few hundred dollars and I am nearly ready to go live with a super functional logical form that I hope will increase my clients bottom line.

    With that said, I like your proposed model. I can definitely see other functionality from your extensions that I will be considering in the future. You might also consider offering an “all in” model for a higher price, similar to what Gravity is doing. There are many extensions you offer that I do not currently have a use for, but I might pay a higher price for an all inclusive option that would give me access to everything in case the need arose later along with occasional support. Again, I nearly went with the $200 Developer Gravity option, but could not demo their product before purchase and thus you won my business.

    Just a few thoughts, I hope some are useful. Have a wonderful Monday!

    Cheers

    • James Laws says

      Aric, great to hear from you and we appreciate you as a customer. Support and customer service is something that we take very seriously which is why we are even considering these options. We want to make sure we can provide the best service possible for years and years t come. I’m glad you’ve experienced what we are striving for.

      As to bundled products we definitely plan on offering those in the future although we already offer up to 10% off if you buy 3 or more extensions. We have bigger plans still. Our main idea is to sell plugins as one-time products and updates as an annual service. The key point for me is that the annual fee is not based on each plugin individually but as a service of the WP Ninjas. Maintaining a subscription licenses for all of these extensions is just way to messy for customers in my opinion.

      I’m glad we won your business and I hope we continue to impress you.

  10. says

    James,

    the pay-per-ticket idea is pretty idea and i would agree that it might be the best idea that i’ve seen. however, I would also agree with Ryan that sometimes diagnosis can take way longer than the solution. I’ve definitely spent 12 hours looking for something that takes 2 lines of code to fix. Maybe this is mitigated by be super-familiar with one code set, so it isn’t like searching for a needle in a NEW haystack every time. I appreciate your attention to proper docu, for the 10% of us who consult the docu before asking for support.

    Best of luck!
    -kathy

  11. James Laws says

    Kathy, thanks for joining the conversation. You are right about being super-familiar with the code and I would also add being pretty familiar with the mistakes some theme and plugin developers make.

    In the early days it took us a lot longer to diagnose issues. These days we find that our issues are in a very small subset of common inquiries. I would say that we can accurately diagnose the vast majority of all support tickets received within 30 seconds or less. We’re still small, in the lows thousands of extension customers but tens of thousands of NInja Forms core users. I can only imagine we get even better the more requests that come in.

    I think this model helps us adapt a lot better though in the long run.

  12. says

    For us, we would be willing to pay the initial cost plus pay for major updates. Or pay for a yearly subscription, especially at your low prices. However, if we pay for a yearly subscription I would think that some basic level of support would be included.

    As you’ve laid it out in this article, I’d be paying for the product, $39.00, plus a yearly subscription for updates, $75, plus support. The yearly subscription is higher than the original cost (if purchasing an unlimited license, as I would).

    To me it seems like overkill. I would vote to have two options for purchasing.

    Option one: Purchase the product at an up front price, with pay-per-ticket support, and pay for upgrades in the future.

    Option two: subscribe to a larger yearly fee that includes unlimited licenses and some level of support.

    For support, unlimited licenses, on all products, I’d easily pay $150 or $300 a year. Of course, this is because I’ve used your products and know the value.

    I think requesting features or extensive custom help should always be based on a quoted price for your time and not part of regular support.

    • James Laws says

      Jason, your comment is the exact reason why we wanted to have this discussion publicly. You bring up some great points and some alternatives that we will really need to think about. So much so I son’t think I can say much more than that.

      Thanks for your support and confidence in us.

  13. Anthony says

    First of all, let me say I’m not a developer of any kind. I’m an individual who builds my own wordpress sites for my own business.
    That being said, when I was looking for a forms solution I found you guys and knowing it would be continuously updated for the price you were offering, It was in that sweet spot for me.
    If the price for the extensions I bought were any higher than listed I probably wouldn’t have bought them.
    If the “support option” was to pay an annual subscription fee, I wouldn’t have bought then either. Maybe if there were a few free support tickets included with the initial purchase and then a pay for support (if very reasonably priced) then that would make sense to me.
    So I guess what the point I’m trying to make is I think it’s important to identify who your audience is and their mindset. There’s a lot of comments I’ve read saying they’d pay up to $300 annually. I have to assume people like that are either running a business building other people’s sites or work for a large company with access to a development budget. Me, I’m just one guy working on my dining room table who just want to find simple (and inexpensive) solutions for what I think might work. How many of your users are like me and how many are true developers. What’s the right solution to serve all segments of your audience?
    That being said, the model you present makes perfect sense generally speaking and of course if you want WPN to sustain itself, it’s a foregone conclusion that it probably has to migrate this way. If so you are probably going to lose those independent WordPress tinkerers like myself.
    Thanks for providing a great product regardless.

    • James Laws says

      Anthony, thanks for sharing your perspective. Our desire is and has always been to have a low barrier to entry for all types of users but as much as we hate to admit it there will always be a segment of people who will get the short end of the stick so to speak. Our goal is to make sure that segment is as small as possible.

      Thank you for being a customer. :)

  14. says

    The more I read these comments the more it is clear to me that annual support and annual update fees are bogus (even though I gladly pay a lot of them). As a customer, you don’t know what you are buying when you sign up for that. One update? Two? What are the updates? Do I care about them? Annual fees only benefit the developer.

    Plus, you have a successful plugin, why are you charging me to keep up with changes in WP? I’ll pay to update for better features, better admin ui or better plugin performance. But don’t charge me to switch out deprecated functions or integrate new versions of wp or woo. Ideally a pricing model would distinguish between compatibility updates and value-add updates.

    I suppose it’s different for every subscription. An annual subscription for developer licenses for themes for example make sense. New version of WP integrated into Woo’s 100+ themes is a lot of man hours. But really, contact forms and relatively isolated functionality – is the cost of staying current really that high? Just charge me if you have something new and useful and I will pay when I am ready to upgrade.

Leave a Reply

Your email address will not be published. Required fields are marked *