Every once in a while people ask me what tools I use so I figured I’d share an incomplete list to give you a peek at what happens on my computers on a daily basis.
When reading this list keep in mind tools for developers are about as personal a choice as what colour underwear you prefer or which super hero is the best so as I present my setup there is about a 110% guarantee everyone will disagree. Which is one of the many reasons I love what I do. Opinion, passion, personality, all combined into one big mess.
Anyways. Here we go.
I’m currently using two main computers:
Acer Aspire S7 running Windows 8.1
MacBook Pro 15″ running Bootcamp with whatever cat the current Mac OS is named after (Sabertooth Housecat or something) and Windows 8.1
As a bonus I have a Surface 2 RT for small-screen testing.
For travel I have an Aviiq Portable Laptop Stand. This is probably one of the smartest purchases I’ve made in the computer accessory department ever.
In the software department I try to keep things as simple as possible while also being cross-platform.
In 2013 I switched my development process to an IDE. My current solution is Netbeans which works well on Mac and Windows (and Linux). I know people who thinks Netbeans is the antichrist. My guess is they’ve never tried it. Sure, it can be a bit of a resource hog, but it’s Open Source and works extremely well for WordPress development out of the box. I have yet to see a compelling argument to switch to the much lauded PHPStorm though I’m sure it exists.
Because I can’t make up my mind (and sometimes spinning up an IDE to do a simple edit is way over the top) I also have a few code editors kicking around on my systems. Primarily I’m currently using Adobe Edge Code CC, but I also have Notepad++ on my Windows systems for nostalgic reasons.
My main development browser is Chrome because it looks like shit on my high-resolution Windows computer. That sounds odd but it’s true. Design for the lowest common denominator. When it comes to high resolution in Windows that would be Chrome.
I also have a browser stack installed for cross-browser testing:
Version control is unsurprisingly all Git. Netbeans has Git built in natively but I use SourceTree to manage my repos.
Whaaaaaaat??? You don’t use terminal? And you call yourself a developer??!?!?!?!?
Pipe down. Why waste valuable time writing commands when an application can do it for you.
My repos are stashed in two different places: GitHub for public projects, BitBucket for private and client work. Sometimes I mirror across both which causes a lot of confusion for myself so I try to refrain from doing this.
After months of research a few years ago we landed on a tool called TeamBox for project management. It has more functionality than BaseCamp and worked better for our team. This year TeamBox rebranded to Redbooth and made some significant updates. I still love it even though the new name makes no sense.
Because I work on two computers and switch between OSes all the time everything I do lives in cloud storage. My primary solution is Box but I also use Google Drive for lynda.com work and Dropbox for personal stuff (mostly backups of photos and writings). Thanks to my interactions with Microsoft I also have an enormous OneDrive account but for whatever reason I never use it.
Like everything else I try to keep my WordPress development environment as simple as possible. This is surely going to lift some eyebrows:
For my local WordPress installs (currently 9 on the Acer, 15 on the Mac) I use WAMPServer and MAMP respectively. No Varying Vagrant Vagrants or virtual machines. Just the basics. Why? Because I build themes and plugins that should work everywhere so booting up a virtual machine to customize a server environment is not necessary.
WordPress and all that comes along with it
Within the local environments I run either WordPress current or trunk depending on what I’m doing. The WordPress installs usually (pretty much always) have the following plugins (keep in mind this is for development, not live sites):
Each install also gets set up with the Theme Unit Test data by default and then project-specific posts, pages, and other content is added as needed.
Frameworks, Generators, and all that jazz
Nope, nope, and nope. I write my code from scratch. No frameworks, no SASS or LESS, no Grunt or Gulp or anything else. Just hand-coded bliss. Does that make me crazy? Probably. But I like write code by hand so there.
I also like to structure my code, and in particular CSS, meticulously. To that end I am working on a code guide for myself which will be published when it’s beyond the experimental stage. In the meantime I take my structuaral inspiration from mdo’s Code Guide.
This of course does not mean I write my WordPress themes from scratch. That would be a colossal waste of time. Every theme I build, private, for free distribution, or for clients, is built from the most recent version of _s (Underscores). And since Underscores is in constant development that means every new project has a bit of a learning curve. Which is perfectly OK.
Finally people always ask me what host they should go with. My answer is I have no idea. It all depends. Over the last 10 years I’ve been with 8 different hosts and currently the sites I or my company owns are hosted across 3 separate services.
We switched our main hosting from 1&1 to SiteGround in 2013. That has been a bit of a bumpy ride but overall I’m pretty happy with the service. I also have an account with the new MediaTemple Premium WordPress Hosting service but I haven’t had time to run any serious tests on it. More than likely this site (mor10.com) will be migrated to MediaTemple in the fall.
I do a lot of my writing, designing, and planning with pen and paper. In my bag I have various Moleskine notebooks as well as other notebooks, scraps of paper, and cue cards. I also carry an assortment of pencils, pens, and Sharpies for various drawing and writing purposes. If you ever got a hold of one of my notebooks you’d see a disorganized mess of website wireframes, article drafts, terrible drawings, and logo ideas that usually never see the light of day. So exactly what you would expect from a notebook.
The great things about doing this on paper, and in a notebook, is that you can go back and look at what you were thinking months and years ago. It can be quite educational.
How about you?
That’s pretty much it. Now that you know what I’m using on a day-to-day basis I’m curious to hear what tools you have in your toolkit. Share your thoughts and recommendations in the comments below!