Craft CMS — How to pick the right plugins?

Jonathan van Rij
4 min readDec 14, 2022

When picking a plugin for your website there are several things you need to keep an eye on. In this article, I’ll list them so you know what you should keep in mind.

I wrote this article for clients and for developers who are setting their first steps into the world of open source. So let me start with some terminology:

  • A module is the same as a plugin or a package, Craft CMS and WordPress call them plugins, Drupal calls them modules and GitHub call them all packages. They are all small blocks of code adding features to your application.
  • GitHub is a cloud storage to store code and cooperation within the open-source community.
  • CMS or Framework, let me refer you to my article about those.
  • Community, all the people involved with the platform you work with.

Just like lots of other platforms Craft CMS also has the ability to extend its features through plugins.

In this article, I’ll talk about the plugin store that belongs to Craft CMS. But the things I’m saying also apply to other systems (like Laravel, WordPress, Drupal, etc.).

Don’t skip the pricy ones

Some plugins are free of charge and some will cost you a little free. Both can be fine for what you need. But paid plugins have a huge benefit. They are built by someone with a (financial) motivation to maintain and update them. This results in a better overall quality of the package.

Examples of great paid plugins for Craft CMS:

Don’t get me wrong about free plugins. There are a lot of great ones out there. But there are some major red flags you should not ignore. Read on…

Is it used a lot?

The amount of times the plugin is installed or used is a great way to know if it is reliable. Plugins that are used a lot within the community will be patched/updated/fixed/etc. fast. A good example is the Redactor package. While writing this article it’s installed 83,949 times. A solid choice if you ask me.

The number of installs of the plugin on the store page.

Is it maintained regularly?

The latest release date (when a package gets a new version) is also something to look at. If it’s a long time ago (think about 7+ months or so) there must be a good reason for it. Sometimes it’s because the package is that small, there is not much to maintain, no worries then. But huge packages tend to need regular updates. This would be a red flag.

Latest release date of Codefield on Github

Prefer the smaller one

If you get to choose between a plugin with a lot of features versus a plugin with just that one feature you need, pick the latter one. The more a plugin can do, the more there is to break and maintain.

Active community

You don’t have to worry about this when picking a plugin for Craft CMS. But when working with other applications it’s surely something to take with you in your decision.

Larger and more active communities tend to give me more faith in the packages that come from them. So this can change the scale a bit when in doubt about a Plugin.

Two alternatives

When you really need a feature but the plugin that offers it has too many red flags and the obvious alternatives (build it or change requirements) are not an option, there are 2 other options.

A developer can adopt (in developer slang it’s called creating a fork) the code of a package and make it work within your application. Depending on the complexity of the package this can be a more efficient option compared to developing the whole feature. This is something a developer can determine for each case.

The other option is to take on the needed maintenance of the package yourself (or with the developer you are working with). Maybe other developers from the community will also jump in and bring some new life into the package.

Are you a developer and wondering how to do this? I’m planning to write a blog on how to fork, clone, or adopt a plugin with some examples.

The original dutch version of this blog can be found here.

--

--

Jonathan van Rij

Freelance web developer @ Blijnder. Passionate developing applications in Laravel and Statamic CMS.