The Ultimate Book Blogger plugin recently passed 1,000 sales. And I’m floored.
I never thought I’d get to this point. When I first built the Ultimate Book Blogger plugin I was in college and doing this for fun. I expected to maaaybe earn $500. At $35 a piece, that comes out to about 15 sales. But now I’ve sold over 1,000 copies and made over $30,000—from this one plugin.
Ultimate Book Blogger is what really kick-started my business and allowed me to continue building it right after university.
Here are a few things I learned along the way…
1) You can’t please everyone
Can you make it so the ‘about the author’ box appears after my signature?
Can you change that back? I want the ‘about the author’ box to appear before my signature.
I really want my giveaways listed in ascending order.
I really want my giveaways listed in descending order.
For every person who wants something a certain way, there’s going to be another person who wants it a different way. Sure, I can make some of these things customizable, but for others, I just have to make a decision and do what I feel is best. I’m not always going to be able to please everyone. People are different and want things to happen in different ways.
2) People will buy without reading
Despite numerous warnings and notices in coloured boxes that the product is for “self-hosted WordPress.org blogs only”, I still get people on Blogger and WordPress.com buying the plugin. Even when I had a “no refund” policy, I still refunded these people who purchased it and later realized they couldn’t even used it. This contributed to my decision to start officially allowing refunds back in 2015.
Part of the problem is definitely the huge amount of confusion between WordPress.com and self-hosted WordPress.org. So many people think that when they buy “premium” on WordPress.com, they’re suddenly “self hosted”. But that’s not the case.
If you’re selling any kind of WordPress product, you definitely need to be prepared for this confusion!
3) Test everything—even if it should “obviously” work
Of course it’s common sense to test any big features or significant changes. But I’ve often tweaked a tiny thing or implemented one simple piece of code that I’ve done a million times, and I didn’t test it properly because it was so simple, so easy, and I knew it would work.
Then it didn’t work.
As a result, I have a few changelog entries that look like this:
- Fixed x.
- Seriously fixed x.
4) People will be using outdated systems that “expired” years ago
PHP versions that are almost a decade old
I’ve had customers using PHP 5.2, which was released in November 2006. It was marked as “unsupported” (no longer getting security fixes, etc.) in January 2011—over five years ago. The two most modern versions that people should be using are PHP 7 and PHP 5.6.
The problem with using such an old version (aside from the obvious “using older versions may expose you to security vulnerabilities“) is that plugins may use features that were introduced in later versions. If your version of PHP doesn’t support those features, the plugin could break or just not work.
I finally had in the sense to add a notice into UBB if someone’s PHP version isn’t high enough to support the plugin.
Servers that don’t support TLSv1.1+
Automatic updates broke for a lot of my clients when I shut off TLSv1. I had to do this in order to remain PCI Compliant (now the deadline for this has been pushed back but I’m still keeping v1 shut off). But some customers were on servers that couldn’t connect to another site via TLSv1.1 or TLSv1.2. Old, outdated systems.
Sadly there’s nothing I can personally do about this one other than say, “Get a host that isn’t so shit.” (sorry 😛 ) But I did add a note to my sales terms that I can’t guarantee automatic updates will always work.
5) Customer support makes all the difference
When I see people recommending the plugin to others, one of the things they often bring up is me. They talk about the level of support I offer and how I’ve helped them along the way.
People were recommending Ultimate Book Blogger long before I ever introduced an affiliate programme, and I chalk that up to the customer service I provide. It goes a long way to making customers happy. If I have a few extra minutes, I even go above and beyond my own support policy. Sometimes it takes me the same length of time to type up a custom CSS snippet for someone as it would to type out that, “Sorry but I don’t provide custom CSS code as part of my support.”
I don’t want people to expect me to write custom code for them, but if it’s only going to take me 30 seconds, then I can surprise them with a little bit of extra help.
Make it easier for people to get in touch
In addition to providing good support, you should also make it easy for people to reach out.
For the developer (me) some kind of ticket system is definitely easiest. That way I can:
- Automatically see the customer’s purchase record.
- See other tickets submitted by that person.
- Ensure their license key is still in date.
But ticket systems are harder for customers.
My custom coded ticket system at the time required that people login to their account. So many people would contact me on Twitter saying they couldn’t login to their account (I’m not sure how they missed the “I forgot my password” link or the “Register New Account” button, but oh well). So they not only needed support for the plugin, they also needed support for the support system! O_O
Last year I moved to HelpScout. HelpScout is a ticketing system for the support team (me), but it looks like normal email for the customer. On my end, I can see the customer’s purchase record, see if their license key is in date, see their profile (name, email, site URL), and see all their past tickets. But replies just go to the customer’s email address, so to them, it’s just normal, convenient, easy email.
I also added a contact button directly inside the UBB admin panel. So if someone is configuring the plugin and gets stuck, they can just click a button to send in a support message.
6) Lifetime licenses aren’t sustainable
I wrote about this last year around when I was coding version 3 of Ultimate Book Blogger.
Pre-made products like Ultimate Book Blogger are cheap. $35. That’s it. $35 in exchange for a piece of software and help setting up and using that software. But when you extend that help to “forever”, it starts to actually put the developer in the red. Soon, I put in more hours of time supporting people than I actually got in return (only $35—sometimes as little as $17.50).
Usually this isn’t an issue. In most cases, customers ask for a bit of help after they first purchase, then they get it set up, and they’re done. That’s it.
Plugin updates is where we get problems.
If there’s a big overhaul to the product, then people will start having questions again. This is what happened with UBBv3. I suddenly had 700+ customers over several years who’d only ever paid me once. When I updated to v3, I got an onslaught of new support tickets that I wasn’t getting paid for. I was overwhelmed with the sheer amount of people I had to support. Sure, they paid me once, but soon the hours I was working overpowered the money that I’d once gotten.
That’s why it isn’t a sustainable business model.
7) Good documentation helps everyone
- It helps customers help themselves. Particularly so they won’t feel lost or overwhelmed when first setting up the plugin.
- It helps me answer support questions. Instead of typing up the same instructions each time, I can link people to a documentation article.
For a long time I didn’t have good documentation at all. Support requests have definitely gone down since I added better, more thorough docs. I’ve gotten into the habit of always creating a new documentation article when:
- Someone asks about how to set something up and there aren’t instructions already. Instead of answering their question, I write up the ‘answer’ in a new documentation article, then link them to that article (two birds, one stone).
- If I find more than one person asking the same question, I add it to the FAQ in the docs.