An engineered approach

We have an engineering approach to the production and management of your website. When you think of some of the things that could go wrong, you'll appreciate why it matters:

  • The server your website is hosted on crashes and your website is lost.
  • A change is made to your website that causes it, or some of it, to go wrong, perhaps catastrophically (we've all seen websites like this).
  • You change something and then decide you don't like it!

We don't want to exaggerate the risks, but on the other hand you don't want to fall prey to them either; prevention is better than cure.

Reliably backed up

The website hosting provider we use backs up your website (and if we're using your hosting provider, they probably do too). But we also run our own back ups of your Website. Not only that, we keep back ups in more than one place so if the unthinkable happens, we can get your website back.

Test, test, test!

Whenever we need to change your website, we don't just change it and hope; we test the changes. But our testing process is rigorous. We keep at least three (yes three!) versions of your website.

First, we have a copy we keep on our computers and this is the primary version we use for development. We test our changes on this version first and we don't let them go any further until we're happy they're working correctly.

Then, we have a second copy that we keep on the hosting servers. This copy replicates your live site as much as possible (it's password protected to stop people accidentally getting to it). When we're happy that the changes are working on our development copy, we copy them to this copy and test them all over again here. As this is as near a representation of your live site as possible, then if our testing is passed, we can be as confident as we can be that our changes will work as wanted in your live site.

The third copy is of course your live site. You want that to work which is why we're so careful with our testing. But of course even with all the testing in the world, occasionally unexpected things can happen. In this case, we "roll back" to the last working version.

Managing all these copies and being able to roll back is called version control.

Version control

Version control is something that might sound like a bit of jargon and you may not immediately appreciate why it's so important. A website consists of two key elements: the content you want to show your visitors and the code that does all the work to get your content displayed. Code is the means by which we can provide slideshows, forms your visitors fill in, links between content, and so on and on and on. The thing about code is that it is complicated, especially in the way different bits of code work with each other. Changing one bit can sometimes have unintended consequences which, in the worst cases, can break your website.

(Think of code as a Roman mosaic with lots of tiny pieces that together make up a beautiful picture, your website. Now imagine this mosaic is on a wall but with the pieces not stuck on the wall but fitting together so perfectly they don't need to be stuck down. You can immediately understand now what would happen if you wanted to change a piece, for example you have a piece with a better colour. If you're not very careful the mosaic will collapse. Your website will crash!)

Whenever there's a change made to your website's code, and there will be many reasons for it (security updates, new and better versions of some key component, extensions you've asked for, the list goes on), there's a risk it could cause your website to crash. However careful we are, we know we're not perfect so we would be irresponsible if we didn't do something to protect you from these unintended consequences. That something is version control, and we use something called git (yes, it really is called git, if you're interested you can read about it here:

Git is very clever. It allows us to track what version of each piece of code we have used in every version of your website. We can go back to any of those versions should we need to (such as if a change breaks your website despite all our testing).

So you can see:

We engineer your website to work!