Today I thought I’d talk about what it actually takes to build a plugin, whether it’s free or paid.
First you have to have an idea
Even just having an idea is tough! If it’s a free plugin then you can pretty much just release whatever you want. If it’s useful to you, then package it up into a plugin and give it to others. Even if no one wants it, it’s not a huge deal because it’s free.
But if you’re thinking about building a premium plugin, then you need to do market research first.
Is this a plugin people actually want?
- Do you know people who have a problem?
- Can you solve that problem?
- Will people pay to have that problem fixed?
You need to know that your audience and market is there before you spend hours/days/months/years building your perfect plugin.
Build the actual plugin
Once you have a good idea, you can spend time building the actual plugin. Depending on what you’re making, it can be a quick process, only taking a few hours or days, or it can be a super long process and take weeks, months, or even years.
When creating your plugin, you need to think about structure and how everything will fit together. It’s important to think about this BEFORE you actually get started, otherwise you’ll just keep piling code on top of code.
I had that problem with the Ultimate Book Blogger Plugin. I knew what I wanted the plugin to do, but I didn’t look very far into the future. So as the plugin grew and changed over a few years, I just piled more code on top of it. Now, years later, the code is pretty messy. That’s why my big project right now is re-building UBB from the ground up. I’m doing a much better job planning the plugin and thinking about how it might grow into the future.
A huge step is testing the plugin internally. By that I mean you—the developer—running some tests on your own. A few tests would include:
- Coding with debug mode on. This is so you can be aware of any coding warnings/notices/errors on your part.
- Testing with some popular plugins/themes to make sure they’re compatible.
- Trying to anticipate what your users might do, by trying a variety of settings combinations and usages to ensure that everything still works.
You can get a lot done testing the plugin yourself, but usually you know how things are supposed to work, so you tend to do them a certain way. Often times the users of a plugin WON’T know how it works so they might screw up the settings or do things unexpectedly. You have to be prepared for that.
…which leads us to…
Testing (with other people)
This is when you give the plugin to other people and let them rip it apart!
It’s important to get feedback in a few different areas:
- Things that are actually broken (coding problems)
- Things that work but are unclear (UX/instructions problems)
- Things that aren’t included in the plugin, but they would like to see
Find a way to deliver updates
This is only applicable if you’re not submitting the plugin to the WP.org repo for free. You need a way to send updates to your customers directly inside WordPress. No one wants to have to go back to their account page, re-download the plugin, uninstall it from their site, and re-install it all over again.
They want updates inside WordPress and automatically.
I use the Software Licensing extension for Easy Digital Downloads. It’s well worth the $82! That’s an affiliate link, but I love this product and use it on my own shop!
Some plugins are very straightforward and don’t require a huge documentation page. But the more complex your plugin is, the more people will need guidance on how to use it. You’ll want to provide your customers with instructions such as:
- How to install the plugin
- How to configure the settings and what the settings do
- How to use the plugin itself
Be prepared to offer support
This is particularly true if you’re releasing a paid plugin. No one wants to dish out money for a product and then NOT get help and support when they need it. If you want a successful business, this is something you must offer to your customers.
There are two main ways you can provide support: through a private ticket system, or though a public forum.
You also need a clear set of terms that dictate what you will provide support for and for how long. Example:
- You will provide help installing and configuring the plugin.
- You will not provide help for customizing the plugin or changing its code.
- You will not provide support for other plugins that are conflicting because those other plugins do not follow proper coding standards.
- You will offer support for up to one year after the purchase date. Support can then be renewed after that.
Creating a plugin is a big job
But it can also be very rewarding (and profitable!). I think the single most important thing is keeping your customers happy. Offer solid support, treat them well, and they will appreciate it. That’s they key to repeat business and excellent word of mouth sales!