Software Engineering in WordPress and Musings on the Deep Life

My WordPress Development Toolbox

I update this post as my workflow changes. This post was last updated on January 10, 2014.

Periodically, I’ll get emails or comments asking about the various tools that I use in my workflow. You’ll rarely hear me saying that I think any given developer should be using any given piece of software.

Instead, I think that out of all the tools that we have from which to choose, we’re naturally going to like some rather than others – there’s not always going to be a general consensus. Because of that, I’m more likely to share what I like rather than what I suggest.

Since blogging is just as much for the readers as it is for the author, I thought I’d take some time to share what tools I use on a daily basis. Consider this a comprehensive list of tools in a WordPress Developer Toolbox.

MacBook Air

My primary machine is a Mid-2012 13″ MacBook Air. For the most part, this machine travels with me anywhere that I’ll be working. When I’m at home, it’s connected a 20″ external monitor, an external Apple wireless keyboard, and an external trackpad.

When it comes to my devices – this machine included – I like to keep nothing more than the tools that I need installed, so I’ve only got a few applications installed all of which help me handle my day-to-day tasks.

Web Server and Database


MAMP Pro is my favorite application for setting up and managing Apache, PHP, and MySQL. The Pro version is worth the cost as it pays for itself in the features that it offers.

It’s ability to manage dynamic DNS, various hostnames, and postfix makes working with a variety of projects much easier and making sure the development, staging, and production environments are as similar as possible.


Coda 2

For several years, I worked primarily in .NET and Visual Studio is arguably the most powerful IDE I’ve ever used. Like any piece of software, it has its shortcomings, but I’ve never used any other IDE that I liked as much.

When it comes to Mac and web application development, Coda 2 is my IDE of choice (and the latest version is leaps and bounds better than the first version). On top of that, I usually use the built in FTP client and database frontend so everything is managed from within a single window.

The weakest point, by far, is lack of a built-in debugger. To meet that need, I’m using MacGDBp until I can land on another all IDE that I like (or until Coda introduces it).



Although I try to stay within Coda 2 as much as possible, there are still times that its FTP client is limiting. In those cases, I opt to use Transmit (which is also by the same developers as Coda 2).



When it comes to managing my databases, I’ve become fonder of Coda 2’s MySQL frontend – at least for local development. The ability to see the schema, the content, and execute queries within the context of its simplified interface makes it really easy to manipulate data during development.

Though it’s possible to connect Coda 2 to remote databases via SSH, some web hosts limit that ability. In that case, I’ll use Sequel Pro. It’s got a really easy IDE, it’s fast, and it connects to database servers over a standard connection, a socket, or via SSH.



Though I’ve already discussed CodeKit in a previous post, it’s become a standard part of my workflow and I generally use it to manage the assets of all of my current projects.

I’m now primarily building things using Sass, but am still comfortable with LESS. I use both JSLint and JSHint depending on the project. If I’m working on something for myself, a product, or for a client, I’ll use JSLint; however, if I am working on WordPress core, I use JSHint.

Source Control

Despite the fact that it appears most developers are using GitHub these days, there are still plenty of options for version control.



Because the majority of the work that I do is on WordPress, I use both Subversion and Git. Since the WordPress Plugin Repository and the WordPress Trunk use Subversion, it’s necessary to have a Subversion app – Cornerstone is my client of choice.



For personal projects and client work, I use GitHub. Although I think that GitHub For Mac is a decent application, I’m not a huge fan of it. Instead, I use Tower exclusively for my GitHub-based version control.

Photo Editing


Though I know most developers and users prefer Photoshop, I’ve never needed everything that it offered. As such, I use Pixelmator.

Honestly, it still has more features that I use, but it’s more my style. I’ve been using it since moving to Mac and have yet to need to upgrade to something more powerful.



Perhaps the most frustrating parts of dealing with building things for the web is the variety of browsers that we have to manage. I prefer not to use virtualization (if I can help it), nor do I want to keep up with multiple laptops.

As such, I keep Chrome, Firefox, and Safari installed on my local machine and use Browserstack to test Internet Explorer and the Windows-variants of the other browsers when (or if) issues arrive.

Miscellaneous Software Tools

For the most part, that’s the majority of the tools that I use for development. Below, I’m listing the rest of my tools as well as links to the applications and how I use them.


  • 1Password. I began using this application is at the recommendation of my team at 8BIT. I’m someone who doesn’t maintain a lot of bookmarks, but I’m also someone who is a bit compulsive about account security. 1Password syncs with Dropbox and has mobile variants as well as a browser extension that makes managing various accounts incredibly easy.
  • Basecamp. Though I don’t use Basecamp in my personal projects, my editors at Envato, various clients, and 8BIT all use it to maintain discussions, files, and other notes for a given project. It’s mobile variation is also really nice.
  • Buffer is a tool that I use to manage sending out links to blog posts or various sites that I find interesting. I don’t use any Twitter clients other than the browser client and OS X’s native Twitter integration (especially in the Notification area) make using Twitter easy enough for me.
  • Reminders. I’m a big fan of GTD and I use it both offline and online. To that end, Reminders is my absolute favorite application (and I’ve tried nearly every single one that’s available). I use it on my laptop and across my mobile devices and the integration with iCloud makes it easy to keep up with what I’ve done (and haven’t done).
  • Markdown Toggle is a browser extension that I’ve previously discussed. I really like the Markdown Syntax and though I was originally using it most with GitHub, I began to want to use it when writing other documents (including email). Markdown Toggle makes it possible to write emails, Basecamp notes, and other letters in Markdown then style it prior to sending or saving.
  • Mou is an application introduced to me by a friend and fellow developer. I originally used iA Writer when keeping notes, but given that I enjoy using Markdown more, I found Mou to be a better fit for my workflow (and the price doesn’t hurt either).
  • Day One. is an application that I use to basically journal things that go on during the week. It has support for markdown, pulls it time, geolocation, and weather data from photos EXIF information, and gives you sleek overviews of your entries on Mac, iPad, and iPhone.
  • Keka is a free Mac file archive utility that brings a number of different enhancements to managing file archives. This includes the ability to work with multiple archive types, split files into pieces, password protect archive, and more.


  • Chrome UA Spoofer is a browser extension for Chrome that makes it easy to send a different user agent to server on which you’re working. This means that the site will render as it would if you were view it on the given device.
  • Viewport Resizer has replaced as my favorite tool to review how a site will render on a desktop, tablet, or mobile device in both portrait and landscape modes. It also works with local sites, so testing sites for their mobile compatibility during development is really easy.
  • Screeny is to ScreenFlow what Pixelmator is to Photoshop. It’s a much simpler application specifically for video capture or screen capture. I use this particular application for creating very simple screencasts.
  • ScreenFlow is my application of choice whenever I’m creating more professional screencasts that require more editing or greater control over both the audio and visual channels.
  • Slicy. If you generally end up developing websites based on PSD mockups, then Slicy is a must-have application. Simply put, it takes any given layered Photoshop file and exports each layer into its own image. This saves a lot of time, especially when it comes to implementing front-end code.
  • Kalaidescope is my favorite comparison application – or difftool – and the latest version is really nice. It’s ability to use it with both GitBox and Cornerstone is a big plus, as well.
  • Flatdoc is an open source project for writing documentation in Markdown. Using the small JavaScript application, it produces a nice looking page that provides documentation for your project. It’s a nice alternative from what’s traditionally used for end user documentation.


  • Dropbox is another one of those applications that nearly everyone and their brother uses, so there’s very little to share about it. I use the free plan for most of my data (thanks to referrals, I have about 6GB of data). This way, in addition to version control, I also have my work available across devices and a backup in the cloud.
  • Spider Oak Hive. After reducing my Dropbox plan to the free plan, I opted to roll with Spider Oak Hive for data that I want to keep encrypted and more secure.
  • Amazon Cloud Drive. Prior to moving to a MacBook Air, I backed up everything to an external drive as well as to the cloud. Unfortunately, the external drive became somewhat of a bottleneck – since the Air uses SSD – a standard hard drive’s performance (especially over USB became noticeable). As such, I made the move to Amazon Cloud Drive and use it as my external backup solution.
  • CloudApp is the web application I use to share various file types with others when I don’t want to expose a Dropbox link, or it’s something that I don’t mind making available for an extended amount of time.


  • Feeder is the application that I use to create the XML feed for podcasting – it makes it really easy to set episode descriptions, dates, and other meta data that’s read by iTunes when displaying a podcast in the iTunes store.
  • WireTap Studio is what I use to record interviews and conversations in podcasts. It’s the next best thing to having a software mixer.

Miscellaneous Hardware Tools

  • Bose QuietComfort 2. I’m one of those developers who, in order to get into the zone, needs good music and needs as much external noise to be reduced. Since I primarily work out of my house, have two dogs, and a 9 month old, the noise – as much as I adore those who are creating it – isn’t hard to come by. These headphones are my favorite.
  • Rode Condensor Shotgun Microphone. As I’ve begun to do more screencasts, online consulting, and even podcasting, I upgraded my microphone from the Blue Yet into something a little bit more high end.
  • CleanMyMac is a simple application used to keep miscellaneous files from piling up on your system. Sure, OS X does a stellar job of keeping itself in good condition; however, are a few applications that don’t do such a hot job of cleaning up after themselves once you uninstall them. CleanMyMac helps with things such as exactly that.
  • Chipmunk is a simply utility for finding duplicates of files that exist across your system. I’ve used this most when looking for photos that may have been incorrectly filed across several directories (but this has more to do with my organizational scheme than anything else).


As far as using an iPad (and iPhone) is concerned, I’m what one of my partners dubbed “an app minimalist.” That is, you’re not likely to find anything beyond a handful of apps on the machine beyond what I need to get work done.

iPad-specific Applications

Sure, I still have things like Netflix and Hulu installed, but other than those two and what I’ve listed below, there’s almost nothing else on the device:

  • Bamboo Paper. I’ve tried a number of notetaking applications and ended up settling on this one. Its Dropbox and Evernote integration along with its support for handwriting (while resting your hand on the iPad) is what won me over.
  • Paper by Fiftythree. When it comes to sketching high-level diagrams or ideas for pages, interfaces, or screens, Paper is hands-down the best application for doing so. I’ve been using it since version one and have never looked at a competitor.

iPad Editions of Desktop Applications

The rest of the applications that I have installed on my iPad are mobile versions of applications that I already have on my desktop and that I’ve covered earlier in this article.

  • 1Password
  • Dropbox
  • Reminders


Just as with my iPad, I have very few apps on my iPhone. Aside from the stock applications, social applications, and Nike+, I only run a handful of applications.

iPhone-specific Applications

  • Pocket. Pocket is a cross-platform application that’s designed to make it easier to capture content that you want to read, but may not have the time to read due to time constraints, web surfing, or whatever else. Being able to capture the content and read it later is exceptionally easy thanks to the browser extensions.

iPhone Editions of Desktop Applications

Once again, the rest of these applications are simply iPhone-variants of desktop applications that I already use. As I said, I run very few development-related applications on both mobile devices:

  • 1Password
  • Basecamp
  • Reminders
  • Day One

That’s All (For Now)

Half the time, I think we blog as much for ourselves as we do for others. In this case, this post is a little of both. Since I’m often asked about what tools I use, I wanted to list of everything I use across my devices, as well as have a list of all of the things that I use for my own reference.

Of course, this post is subject to change. As new applications are released, software is updated, or things simply change, I’ll likely be adding, removing, or changing some of the content.

Finally, it’s highly likely that someone else is using an application that’d benefit us all so feel free to share your favorite applications in the comments.


  1. Agnel Waghela

    I have been using Crunch App for managing my less files.
    Also, i have been using Notepad++ and thinking of switching to Sublime Text 2 after reading and watching the videos on envato.
    Is there any application like mou for windows?

    Q: Why don’t you allow markdown in comments?

    • Tom McFarlin

      Sublime Text 2 is a great editor – lots of developers I respect also use it. It just didn’t fit how I do work, so I’ve opted to stick with Coda.

      I don’t allow markdown in comments simply because it hasn’t crossed my mind. Good point – gonna look into enabling that.

  2. Lars


    Thanks for sharing! I’m always curious what people are using. There are some good things you mentioned in there. Totally checking out Pixelmator as I also feel like Photoshop is way to heavy for front-end development (and I use probably 1% of it’s functionalitiy).


    • Tom McFarlin

      Sure thing, Lars – glad to have helped out. I dig Pixelmator (obviously) and still have yet to really scratch its surface.

      I’m no designer, though.

  3. Rachel Baker

    Really curious….
    How do you go from doing .NET development using an IDE to a limiting front-end dev tool like Coda?

    Also, you might be interested in the Mac app Sequel Pro:

    • Tom McFarlin

      Going from .NET to Coda wasn’t easy – I tried a number (believe me!) of tools before coming back to Coda. PHPStorm was the only IDE that really had promise for me, but I could not get past its UI – it was too much of a pain to deal with.

      So, basically, it was a matter of tradeoffs to me. I opted to go with Coda 2 (which I do think is a significant improvement over Coda) though it’s limited for its UI over the other tools.

      Don’t misread me, though: Straight up, I miss Visual Studio.

      Anyway, I’ve looked into Sequel Pro and actually used it for sometime. When Coda 2 came out, I tried to go “all in” with its new features. It required a bit of a change in workflow, but I’ve yet to really need a different frontend – so far.

      Sequel Pro was much more useful to me when I was doing both Rails and WordPress. At this point, I’m doing WordPress so much that the majority of the database work I do is on a consistent schema :).

  4. Mario Peshev

    Had no clue you’re coming from the .NET world – I suppose it’s painful not to be able to reuse Visual Studio (lucky us, Java people, that Eclipse runs everywhere).

    Thanks for the hardware toolkit recommendations, Bose are in my TODO list. I’ve also been recording musical instruments for years now but feel a bit uncomfortable when it comes to vocals and speech recording.

    • Tom McFarlin

      I did a ton of C and Java in school and used Eclipse nearly every single day of my college career. Love that IDE. Then I moved to .NET and fell in love with Visual Studio.

      That isn’t to say it’s a perfect IDE – I think the UI could use some work – but the tools that it provides are almost second-to-none.

      IDE’s on Mac leave something to be desired so, for me, it was a matter of evaluating what was out there and then going with what I liked the most.

      Oh, and yeah, the Bose are completely worth it.

      • Mario Peshev

        I also had a year with .NET in the university and several months at work, but somehow I didn’t fell for VS – it has some great points (and it’s incredible when you’re using the very full stack) but it doesn’t feel natural here.

  5. Steven Slack

    Do you find the Macbook Air screen and computing power enough for everything you are doing? I was thinking about going the same route as I like the portability of the Air. I use the 15 inch screen on my current system just as much as my external monitor – they sit right next to each other.

    I am about ready to purchase a new computer and I am having a tough time deciding which route to go. Thoughts?

    • Tom McFarlin

      I’ve never had a problem with the 13″ Air. In fact, this is arguably the best machine I’ve ever owned so much so that I purchased a second Air when I had a mishap with my first one.

      That’s another story for another time.

      Anyway, I’ve never hit the limits of computing power on it. The only time I hear the fan come on is when I’m rendering video. The only concern you may have is space – if that’s the case, I would recommend looking into some external storage, but that’s more of a matter of personal preference than it is the Air not being up to snuff.

      • Steven Slack

        Great to hear! Storage isn’t really a problem, I’ve never gone above 200GB on any computer, I use an external just for videos and pictures – the rest fits up in the clouds.

  6. Ryan Meier

    You mentioned you previously programmed in .NET. How was your transition moving away from .NET? Were those projects freelance?

    I have been doing .NET for the past five years and want to get away from it and start doing WordPress/php projects.

    • Tom McFarlin

      The .NET projects were actually for a corporate job. The transition away wasn’t bad because I’ve always done a lot of pet projects at home, so there wasn’t a really big learning curve.

      The challenges were more in learning to run a business than learning to manage a new platform :).

      Overall, it wasn’t bad – WordPress’ API and page lifecycle is a bit different than .NET’s, but it’s easy to pick up once you’re in it for a while.

      • Ryan Meier

        Good to know. I really can’t stand .NET anymore. There are things I do at work in .NET that I could do with WordPress in a quarter of the time. Thanks for the advice.

  7. Aquila Mcleod

    WordPress development comes with a cleaner code. Some developers of the WordPress platform create themes for free and hides links within a code linking back to the website.

    • Tom McFarlin

      Yep – and this is a big reason why it’s important to perform due diligence when investigating free themes.

  8. Remi

    Hey! Thanks for this detailed list of great software. I’m a huge fan of Coda, but i’d like to know if it’s possible to see a repository history directly within Coda. If yes, then i wouldn’t need GitHub app or Gitbox.

    • Tom McFarlin

      Honestly, I’m not sure. I don’t use Coda 2’s built-in source control manager. I tried it briefly, but I’m too much of a fan of GitBox. Perhaps someone else will chime in with an answer!

      • Tareq

        Ever tried Git Tower? I find it awesome for me. Although never tried GitBox.

        • Tom McFarlin

          I sat a long time in trying to decide between the two, but ended up going with GitBox because I liked it’s price tag (not afraid to admit that), as well as it’s balance of simplicity on design and feature set.

          Granted, Tower probably works better for larger teams and projects – I can’t say for certain – but I’ve really enjoyed using GitBox. My team of six gets along with it just fine in our work.

  9. austinklee

    Are you still using Crashplan for Backup and if not…what do you use?

    • Tom McFarlin

      Nope – I’m using Amazon Cloud Drive. Check out the details mentioned earlier in the post. I talk a little bit more about it there.

  10. Ryan Meier


    How many gigs of ram does your Macbook Air have? I was looking into getting one soon and wondering if the 8gb option is a requirement. I understand most of the time more ram is better, but being on a budget I just want to see my performance options.

    • Tom McFarlin

      Hey Ryan,

      I get by with 4GB just fine. I typically don’t do a lot of heavy lifting; however, I do use ScreenFlow quite a bit and it handles it like a champ even if I’m encoding two videos at once.

      Never once had a problem with it.


    With havin so much written content do you ever run into any issues
    of plagorism or copyright violation? My site has a
    lot of exclusive content I’ve either created
    myself or outsourced but it appears a lot of it is popping it up all
    over the web without my permission. Do you know any solutions to help stop
    content from being ripped off? I’d really appreciate it.

    • Tom

      Generally speaking, no. Most of time, if someone copies my site, it’s because they scape they scape the RSS feed for which I automatically (via WordPress SEO) append a string of where the post first appeared so I always get a link back :).

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2023 Tom McFarlin

Theme by Anders NorenUp ↑