Sam Hotchkiss just posted this: What’s your WordPress development setup?
I got a bit carried away with the response, so here it is as its own blog post.
First things first, I primarily work on a 13″ retina MacBook Pro. It’s perfect. I connect to an external monitor only when doing print work or checking 1x images/icons.
I mostly work full screen. One window per screen with one exception. I find this encourages less checking of my work on every change and makes me a bit more efficient. I have most notifications disabled and often turn them off entirely when I’m in “the zone.”
My primary desktop has maximized Chrome window with WP and FB and a bunch of articles on my to-read list. Desktop 2 has a maximized window with only stuff related to the project and the project itself open. If I’m browser testing, they’ll all be in this window including any VMs. I
command + tab between them. Desktop 3 is my full screen editor. Desktop 4 is all the chats, Mailbox app, and Twitter. Desktop 5 is Github full screen. (I find I use chat more than the Github app) Desktop 6 is IRC because I still can’t close it no matter what I do. Simplenote i always my last desktop (it’s on my external currently so it isn’t in the screenshot.
I add desktops as needed (Sketch, Illustrator, etc). Sometimes when I’m working on more than one project simultaneously I have another three desktops in the same order opened at the same time. Most of the time I just close everything when switching a project.
My main browser is Chrome. It used to be FF years ago, but I like the Chrome dev tools better. I don’t have any crazy extensions, really. Just a React extension that adds a panel to help debug.
I use VVV accompanied by the VVV site wizard script so I can quickly(ish) add sites per project.
My editors are either Atom of ST3 depending on the project. Both have the space gray theme and various package enhancements. If I’m working on a Github project, I use Atom.
If I want to create, test, or debug some crazy CSS, I usually drop into CodePen and build up a quick demo in ~5 minutes or less.
I use Charles to create a proxy for local testing. My devices have the proxy settings on my spare network so I don’t have to set them every time. I just switch the network they’re on.
I have a few really handy aliases. They could probably be dropped into an Alfred workflow.
wpvvv– switches to vagrant folder
edit-alias– opens bash-profile in nano
edit-hosts– opens hostfile in nano
horse– ask me in person
sites– switches to my misc projects folder
jetpack– switches to jetpack (used to also start up grunt, but removed that recently)
- I have aliases to connect to Automattic sandboxes.
- I have aliases to connect to my hosts.
Github project specifics
- I use the Github Mac app entirely for diffs and this handy right click menu
- I use the command line for everything else (commits, etc)
- On almost all projects I branch > write some code > PR into main project
WP core setup
- I use ST3 almost entirely for core at this point
- Command line for SVN things
- No aliases or shortcuts for patches or anything. Just command line.
- I have some custom styles applied to Trac locally to make it much more readable and pleasant (as much as it can be) to use.
- Mostly matches Github projects setup at this point, but when working on the older stuff it matches WP core setup
- I use an alias to edit my hosts file and connect to my sandbox.
- I use unity (though it recently busted) to sync files.
- lots of