Lessons I learnt from starting a WordPress Plugin Company

In late 2016 I launched my first WordPress plugin, WP Native Articles, a plugin for adding Facebook Instant Articles to any site. It was in direct competition to the already existing offical Instant Articles plugin (my frustrations with the official one was my reason for making it in the first place) as well as a few other third party plugins. Yet over the last few years we managed to dominate the WordPress.org search listings and become, by a loooong way, the highest rated Instant Articles plugin there is.

These are some of the thoughts, musing and learnings from the last few years, partly held as a record for me and partly to help anyone else who plans on starting a WordPress company (or other online venture).

Developing your plugin

Developing your plugin is one of the hardest parts, it’ll take you years and the scope will change massively. You’ll have a vision in mind, new features will occur to you, your competition will come out with new stuff and you’ll want to keep developing until you reach the ‘finished’ state. DON’T. It never ends and you’ll never finish. Have an MVP in mind for your free version and lock the features down for that (keep it realistic) then get that out as quick as you can along with your first, basic premium offering. However, make sure it’s stable, tested thoroughly, and does exactly what you say it doesn’t (you don’t want bad early reviews). Then once it’s out and people can start using it put effort into developing new features. You’ll have a list of “cool stuff” you want to add, some of it will be great, some of it won’t. Listen to your customers, add features that will make their lives easier (auto integration with other third party analytics libraries they might be using for example), not what’s coolest for you.

Our Pro plugin is a complete replacement for the free one, and honestly I regret it. Partly it confuses the non tech savvy, but mostly because it makes development harder having to maintain two separate plugins. In the end I actually wrote a script that will generate both the Free and Premium version from one repo (with some nifty IF statements in the code). I’d probably also shift to selling multiple, smaller admins rather than a single large premium Plugin (see Easy Digital Downloads). More than anything it makes it easy to develop for (you don’t risk breaking every single thing every time you do an update) but also it means as you release new features you can create new plugins and up sell them.

Marketing

Marketing is a necessary evil. Like many other developers I hate marketing. I don’t really understand it, I’m terrible at writing blog posts (this one took several days) and I’d much prefer to be coding. However, if you want customers to buy your products marketing is essential. A website is obviously a must, make sure it has lots of screenshots and clearly explains the features of your plugin and what it offers (get someone else to check it over, you’ll be a bit blind but this point and it needs to be clear to people who have never used the plugin before). More importantly make sure it’s fast and basically optimised for SEO, pretty much any decent off the shelf WordPress theme should be. Your SEO is important but it’ll take months to climb the rankings.

If you do have a small budget for marketing paid reviews are always a good option (though make sure your plugin is fairly complete before you do). Don’t necessarily except a huge influx of customers but it helps a lot with your SEO and getting the word out. There are also a bunch of paid plugin directories you can submit your plugin to, all of which help drive SEO. Make sure you also link to your site from your description on your WordPress.org plugin, and back again. Getting your WordPress.org to the top of Google is probably easier than your fresh new site.

Affiliate marketing is also worth setting up (it’s fairly easy using one of the affiliate plugins, though be prepared to create some simple creative assets). We get 5% of sales though our affiliates, not a huge amount but we also haven’t historically put much effort into cultivating our affiliates.

Finally, be ready for seasonal promotions. November and BlackFriday is easily our best month (normally 2-3 times normal revenue) but you have to start preparing in October. Dozens of websites do BlackFriday lists, setup a decent voucher code and get on as many of them as you can. You’ll wish every month was like November, but be prepared for the higher than usual refund requests, customers will get a tad excited by the plugin then change their minds.

WordPress.org

Most of our purchases come from customers that have installed our free one and wanted to upgrade. Unless you have thousands to chuck into content creation and dominating Google rankings from the beginning then really the plugin directory is a must. It provides easy access to a captive audience who already understand the platform, how it works, and trusts the process. That being said, trying to get your plugin to rank high for search terms on the plugin directory is a game in itself. Freemius has a handy guide covering all the basic stuff, from my experience though, releasing updates relatively often (don’t over do it, 3 – 4 weeks or so) and getting lots of positive reviews is the best way to get to the top (put a DISMISSIBLE banner in the free version of your plugin with a personal message and your name. If customers like your plugin you’ll get lots of reviews. Also a handy Freemius guide).

Once you’ve got a large audience using the free version of your plugin it’s then time to upsell them the Premium version. While it is a captive audience, don’t expect droves of people to convert. Fewer than 5% in my experience. But that’s still pretty good. I started off by adding a standard ‘Premium Features’ menu page with a bunch of pretty images that highlighted the advantages of upgrading and it worked pretty well. However, and I can’t recommend this enough, what really drove up conversations for us has butting in all the Premium Feature pages, menu items, options etc but greying them out (and removing the back end logic obviously) and putting a large banner at the top suggesting people upgrade to unlock them. Seeing the exact options a customer gets by upgrading and being able to visualise them and understand what they are really drove up our sales. It’s the best way to upsell in my opinion.

The downside of .org is the bad reviews. Anyone can create an account and leave you a bad review for the smallest grudge or tiniest of your plugin. These reviews affect your rankings and you have almost no recourse (it’s a common frustration with the .org directory, once companies get big enough to afford the marketing they tend to not bother with it. See Pippin Williamson or WP Rocket as examples). That being said, if someone does leave a bad review, take a deep breath then leave a nice reply thanking them for taking the time, gently address any issues they might have, chastise them for not reaching out to your support, and then suggest if they did you’d still happily work with them to fix any issues. It takes a very cool head to do but I’ve managed to be rid of several 1 star reviews by following this exact method.

Support

This. Is. Important.

It’s also extremely difficult. ~80% of our customers never get in touch with us, 15% of the ones that do we can resolve in a single support request. The remaining 5% is where all our time goes. We go to rather extreme lengths with our support (sometimes spending hours helping customers), partly because our plugin is complicated and relies on an even more complicated third-party (Facebook), and partly because we’re extremely proud of our product and want our customers to be happy. It can also extremely depressing. On bad days I start to dread the little notification on my phone that indicates a new support message and dream about chucking it all in. That being said, here are the best visible results of our support efforts (two of those 4 star should be 5, yes it bugs me!!) not to mention all the repeat customers and recommendations we’ve got.

Nearly 100 5 star review on WordPress.org

So close to the magic 3 digits

Like many we use HelpScout for support. It has a great ticketing system and also provides easy hosting for all our docs. Yes it costs, which sucks when you’re only making $100 per month initially, but it is worth it long term. Despite the emotional drain I’d also recommending installing the app on your phone (or make sure you get emails) as it means you can quickly respond to new support messages even when you’re out and about, customers appreciate speed! Though like everything there is a balance, some people panic email and it can best to leave it an hour before you reply, often by then they’ve managed to find the documentation by then and fixed it themselves.

Taking Payments

Get both Stripe and PayPal.

I started off only taking PayPal and was happy enough for several months. Then one day PayPal stopped working for 6 hours, a not completely uncommon occurrence, and I panic bought Stripe and set it up. I had always intended to us both, I’d just never got round to it before.

With Stripe you WILL have fraudulent transactions, this will then lead to disputes that you WILL lose (and will cost you $15 on top of the lost sale). In a recent discussion in the Facebook Selling WordPress group, the majority of sellers admitted they had never or rarely won a Stripe dispute case. In contrast, with PayPal I’ve never had a single fraudulent transaction. To be entirely fair, it’s not exactly Stripes fault, smaller banks don’t do postcode or CSV checks for cards which makes fraud ridiculously easy. It’s not all bad though, if you run a subscription model it’s much harder for customers to cancel their subscription through Stripe than it is through PayPal, though there is a risk their card will expire.

Despite this, adding Stripe has definitely increased sales and has helped convert customers that don’t have a PayPal account. We now do ~40% of our sales through Stripe, even after we allow 10% of those to be lost to disputes we still come out ahead. If I started again I would have added Stripe to the the site much sooner.

Refunds

You’re going to get people asking for refunds. Early on when you’re only making a few sales a month it’s incredibly depressing. Some will be legitimate, some less so. If they bought the product then immediately email for a refund the chances are they’re planning on continuing to use it just without the licence. This is obviously annoying but it’s such a small percentage of sales it’s generally not worth worrying about (or in particular, adding code to restrict parts of your plugin without a valid licence. Any vaguely amateur developer will be able to strip it out anyway). It’s easier said than done though and several times I’ve had to take a break from answering support threads when I’ve got a bit too annoyed.

Legitimate refunds are can be an opportunity though. If someone emails for a refund (particularly if they’ve never been in contact with your support) then your first response should be a retention one asking what issues they’re facing and bigging up your support team and how you’ve helped other customers (don’t make it too automated, something personal addressing their particular issues help a lot). This will work in about half of all cases, they’ll reply and hopefully you’ll be able to address any issues they’re having with your plugin. The other half will just want a refund straight anyway. There’s nothing to be done at this point, just issue one, send a nice message, close the thread and move on. With any luck they’ll say what they didn’t like about the plugin and (if it’s valid) you can add it to your roadmap to fix in the future.

Retention

It’s fairly well established in WordPress land these days that Plugins and Themes are sold with a yearly subscription. Nominally the actual software is free but the subscription pays for updates and continued support. I’d strongly advise you do the same. It helps generate a sort of snowball effect and means every year you’re in business your sales should increase (to a point). It also makes you feel a lot better when you spend several days helping a customer fix an issues that’s only vaguely related to your plugin. Initially we offered a 10% discount for subsequent yearly payments but we soon removed it and no one seemed to care.

Customers will forget it’s a subscription and will you’ll absolutely get refund requests for renewal payments (sometimes angry ones), just refund them and move on. I’d also recommend sending an email a week or so before the renewal payment is due, if you issue too many refunds your payments provider will block your account (Stripe!!).

YOU WILL GET STUFF WRONG

In the early days of WP Native Articles I did a release that prevented ads showing in all new Instant Articles. A pretty big screwup. Luckily I had very few customers at the time and ones I did have I was on good terms with (support! support! support!). They informed me straight away and I managed to get a fix out pretty fast.

It doesn’t matter how careful you are, how thorough you are, how good a coder you are. At some point you will make a mistake. Hopefully it won’t be too bad but how you manage it is important. Customers can be surprisingly forgiving, don’t try and hide any huge mistakes. Put it on you Twitter. Put up a blog post. Tell you customers what the problem is, any temporary solutions then use, when it will be fixed properly etc etc. It’s hard to admit to your own mistakes, you’re worried your credibility and reputation will be affected, but if you’re honest and transparent with you customers you’ll build up trust in your brand, and that’s possibly the most valuable asset you can have.

If I can give you one takeaway from all this, it’s that developing your plugin is only 33% of the work, with marketing and support making up the other two thirds. Yes they’re not as fun, especially to developers, but what’s less fun is having a plugin no one uses. If you can make a plugin that people are willing to pay money for it does wonders for you motivation.

I hope this helps anyone planning on starting a WordPress company. Anything to add just let me now below!