This is a question which I, as a developer, commonly find myself asking when looking at a new project. A great advantage to using WordPress is the nearly 1.5 million plugins available in the repository, all available for free. With this selection available, a solution to your problem might already exist.
But if you have the skillset, building your own plugin can often provide a much better final product. Before deciding, ask yourself these questions:
Does this plugin have the functionality I need?
A seemingly obvious question, it’s the most important part of this process. Think about your site’s needs and compare that to what the plugin has to offer. If it’s a perfect match, then in most cases, you’ll be fine using the plugin. Commonly, there are specific business cases which the plugin developer did not have in mind while writing the plugin, such as a contact form feed into a CRM, newsletter signup or custom shipping requirement. If the plugin does not offer support for these needs, look at the plugin’s code and documentation to see if the plugin can be extended by actions or filters. If so, you should be able to augment the plugin to better match your need. If not, either find another plugin or develop your own.
How hard would this solution be to build myself?
Another obviously important question as time and hassle can be an important factor when scoping out projects. Sometimes it’s just easier and faster to use a very robust contact form plugin (like Gravity Forms) for a simple contact form. Other times, you need to live within the constraints of the plugin and try to adjust the business objectives to match the best tools available. It’s important to consider your own skill set too. While many projects can serve as great learning opportunities, it’s important not to overextend yourself.
Do I trust this plugin?
While WordPress plugins have had a very positive history of being free from malware, it’s possible that a plugin might have a gap in its security that allows hackers access to your site. Look at the plugin’s page in the repository and look at how recently the plugin has been updated. Even for simple tasks, avoid anything that has not been updated in over two years. If the plugin is more robust, releases should be more frequent with many minor updates which iterate the plugin over time. Look at the reviews to see public opinion and read the support page to see how commonly the developer responds to support requests.
What will be easier to maintain long term?
How likely is it that the website’s needs will change? If the plugin were to move in a direction that does not match your business needs after an update, how much of a problem would this be? While using plugins can help save time during the initial build, sometimes they can become a hassle to work with long term. Building it yourself will give you greater control over the plugin’s functionality and can ensure that the rug with never be pulled out from under you.