When starting a new web project there's always a few similarities to other projects which I've completed in the past. In order to save a bit of time and optimise the value I can deliver I tend to work from skeleton projects which I've developed over time to cover off a lot of these similarities. Why do something more than once when you don't have to? 

This is a run down of the Plugins which live in my CraftCMS skeleton. I use them so often that I include them in every new project from the outset. If you think I'm missing any awesome plugins that you've found, let me know @mattgrayisok.

CP Sortable Custom Columns

A quick one to start off with which adds some functionality which arguably should have been included within Craft itself as it's used so often. When I first started building Craft websites a recurring question from clients was why they were unable to sort lists of entries in the CMS by clicking on the table column headers. Implementing  this functionality manually is a pain, but CP Sortable Custom Columns gives it to you with zero fuss. Just install and start sorting to your heart's content. Pretty simple but very useful.

Get it here

Imager

Craft offers a decent collection of tools for organising and manipulating images which are used within your content, however Imager takes things a step further. There are so many things that this plugin does that I won't try to list them all here (you can just read the docs instead) but at a high level Imager will greatly expand your ability to organise and manipulate images within Craft efficiently. A few highlights include:

  • Auto generating srcset attributes
  • Batch processing image resize and crop within templates
  • Transforming externally hosted images
  • Extracting colour pallets from images
  • Much more...

In my own testing this plugin tends to improve template rendering performance when used correctly so there is very little reason not to use it as a straight replacement for Craft's built-in template based image transform tools.

Get it here

Hacksaw

Makes truncating text super easy. It has options to truncate by paragraph, word or character count and all using a simple template filter. There's no reason not to make use of this little time saver.

Get it here

Import

Sometimes migrating data from an old website to a new one is easy - just dump the data from the old database and push it into the new one appropriately. With Craft this isn't so easy. Craft uses a complex and dynamically structured database which is difficult to interact with. Because of this the best approach to importing data is with a plugin like the aptly named Import. This plugin will read a CSV file full of data and create an Entry (or category if you wish) for each row, with each column mapped to the appropriate field. This setup is super flexible and allows you to import data from almost any source into Craft as long as you're willing to get it into a CSV first. One caveat though: I have not yet found a way to easily import files and image into Craft whilst maintaining any relationships with existing objects. If you have a nice solution to this, let me know!

Get Import here

Minify

Does what it says on the tin: minifies things. It can crunch down your CSS, HTML or JS from within your template files. I rarely use this myself but other plugins make use of it if it's available so no harm sticking it in the mix.

Get it here

Retour

When building a website to replace one which is already live, it's easy to forget about the SEO impact of changing URL structures used throughout the site. Updating a site to move it away from:

example.com/index.php?p=news&a=87hjsda7

Towards something much nicer like:

example.com/everyone-prefers-pleasant-urls

Is certainly worth it, but in doing so the site will lose a lot of its search engine authority and any old links back to the site will break. To avoid this we need to set up a system which cleanly redirects users from the old URLs to the new ones. Retour will do this for you. It not only allows hard coded or RegEx based redirects, it can also inspect the contents of Entries in order to make redirects dynamic. For example you could create a news Entry type with a field called `oldId`, use Import described above to import all of the old news items including their old id, and finally, set up a dynamic redirect in Retour which finds a news entry with an oldId which matches the one in the URL and performs a redirect to the entry's slug instead. 5 mins work to create thousands of SEO saving redirects.

Get it here

Sentry

Every site I build reports all of the errors it encounters to a platform called Sentry. The Sentry plugin for Craft makes this integration super easy and ensures that these projects get the return on time invested. Having always-on error logging and alerting ensures that small problems are logged and dealt with before they turn into big problems.

Get the plugin here

Read about my Sentry setup here (once I've written it)

SEOmatic

This is a big one. SEOmatic provides a lot of tools and functionality which improve (or allow easy improvement of) the SEO of your Craft builds. Its main function is inserting meta data into your templates. It does this comprehensively, covering all social networks and structured data formats, whilst providing flexibility by allowing meta data to be defined by the content rendered in a template. The plugin's README does a good job of explaining how meta data is selected in different contexts so give that a read.

Get it here

SEOmatic isn't the only option in this space but does seem to be the best, free offering. If you'd like a commercial solution which comes with support, try Sprout SEO instead.

OAuth & Twitter

Several of the Craft builds I've produced have required a Twitter feed, with tweets updated in near-real time. A couple of plugins help with this and also provide the basis for creating other plugins which require an oAuth2 connection to a 3rd party API. These plugins are OAuth and Twitter from dukt.net. The oAuth plugin allows a CMS user to connect to a Twitter account whilst the Twitter plugin allows the Tweets to be pulled, cached and displayed from within Twig templates. Once set up this integration can then be forgotten about as it updates itself from Twitter regularly.

Find these plugins and a few more at dukt.net

There are thousands of plugins for Craft CMS which augment its abilities in many different ways, but these are the ones that I tend to make use of most consistently. By utilising top quality plugins like these with a large base of established users, I can be sure that I'm delivering the best value to my clients whilst also remaining confident that the end product has been thoroughly tested in the wild.

If you like to work smarter rather than harder too, and have a project in mind, get in touch.