My Development Setup

Over the years, my development setup has changed many times! When I began developing, I used Windows and Macromedia Dreamweaver… That no doubt shows my age! For the past couple of years though, I’ve been Mac based and have used a variety of different development tools until finally settling on my current setup.

In terms of the hardware I use, I have a Macbook Pro which allows me to work anywhere quite easily, and in my study at home I have a 27” iMac which is great for the design work I do.

IDE

For a long time, I used Sublime Text which is basically a text editor on ‘roids! Through its package manager, it can be extended in many many ways… need an inbuilt terminal? No problem! SCSS capability? Sure! You can also install themes to make it a little less harsh on the eyes… as it’s something I stare at for many hours in a day, it doesn’t hurt for it to look nice! More recently though, I’ve moved on to using Phpstorm, the ‘lightning-smart IDE for php programming’ apparently! Being a full blown IDE, it comes with a lot more functionality like code completion, error checking and PHPDoc support. It’s a far more useful tool for me when working on Laravel projects.

Server

For a local server, I use a package from the creator of Laravel called Valet which uses Nginx and DnsMasq to allow the easy creation of local sites – without having to manually edit the hosts file. Out of the box, it supports Laravel obviously… but also WordPress, Craft CMS, Cake Php and others. This is generally all I need. 

For staging and development servers, I use Digital Ocean or Linode – both are very similar and allow new servers to be spun up in a matter of seconds.

Version Control

Though I mostly work alone, I like to use GitHub for version control. Not only is it good practice for when I do work in agency environments, but it has saved my bacon numerous times in the past when I’ve accidentally overwritten something! The ability to restore an older version of a file is a very useful feature! I also work on a laptop and a desktop, so pushing code to a repo allows me to switch between machines very easily.

And finally…

Google Drive

As well as keeping copies on my local machines, I also backup all client work to Google Drive. If I ever have a hardware issue, or need to swap machines I know that I don’t have to worry too much about making sure everything is saved.