My Workflow Tips and Tricks

Alfred Workflow: Boot up

I recently returned from a team meetup in Hawaii (you can read about the fun stuff here). The meetup had a strong focus on discussing and improving our efficiency as a team. Part of that involved sharing our individual workflows so we could learn from each other. While some of the tips that I shared are specific to the work that we do as a team, other parts might be helpful in general.


I rely heavily on an app called Alfred. If you haven’t used it before, I recommend giving it a look. On the surface, it looks like a simple Spotlight replacement. But when you get under the hood and start using Alfred’s features you’ll see that it blows Spotlight out of the water.

Shameless self promotion: I was recently interviewed on the Alfred Blog, which you can check out here.

Starting my day

I have a custom Alfred Workflow that I use to get my day started. I hit Opt + Space, and enter the work keyword into the prompt. This opens up all of the apps that I use for work, as well as the tabs that I use in Chrome to start my day.

For reference, the apps and sites that I open are:

I have a few variations for this one. For example, if I’m doing a theme review, I have an Alfred workflow for that. It will fire up my theme review Vagrant, open Sublime Text, and open up the front-end and back-end of the site in Chrome.


Color coded Gmail Labels

Once I’m booted up, I head over to the Gmail tab. At Automattic, we use P2s extensively for internal communication (well, actually, o2). I subscribe to the most important of these by email. I use Gmail filters and labels to keep my inbox organized. The filters break things down by category (i.e., Jetpack, Support Forums, GitHub) and then I use labels to color code them. That way I can get a good sense of what requires my attention with just a quick glance at my inbox.

I also have my inbox set to show unread messages at the top. This allows me to mark the non-important messages as read, and they will disappear from the top. If one of the emails requires a quick action, I try to do it right away. If I don’t need to complete the action right away, I use a hotkey to quickly enter it into Todoist.


Todoist Workflow

When I enter a task into Todoist using the quick add, I just send it to my inbox. Then, after getting caught up on my emails, I open up the Todoist app itself and organize my tasks using Projects and Labels. I keep projects top level (Personal, Work, Read, Write, etc.). I then use labels to break things down into specifics (Forums, P2, GitHub, etc).


After email, I head over to Slack, which we use for synchronous communication. I do not read scroll back in Slack when I logon for the day. I also mute most of the channels that I am in. The exceptions are my team channels, and other important company-wide channels. This allows me to avoid unnecessary distractions, but still receive notifications when someone mentions a keyword in a muted channel.

Alfred Workflows

Now that I’m all caught up on communication, I’m ready to start my day. Depending upon what I’m working on this work can vary quite a bit. But there are a few Alfred workflows that I use on a regular basis:

  • Alfred Gist: Easily create a Gist from the contents of your clipboard. This is handy when I’m writing a quick code snippet in Sublime Text for a user, and want to share it with them.
  • Caffeinate Control: This allows you to enable/disable your Mac’s sleep function. This comes in handy when I am regen’ing thumbs, or doing something that requires my monitor to remain awake.
  • WordPress developer reference: Search the .org documentation for functions, hooks, classes, etc. It also autocompletes, which is nice for when I can’t remember the exact name of a hook or function.

There are a handful of commands that I run on a regular basis to troubleshoot Jetpack connection issues. Instead of manually typing these commands in each time, I have workflows that allow me to automate the process.

For example, I often try to cURL a site’s xmlrpc.php file to see if it is accessible. Instead of typing the command each time, I just copy the URL to my clipboard, hit Opt + Space to bring up Alfred, and enter the curl keyword and Ctrl + V to paste the URL. Doing so will run the following command in Terminal (where {query} is the URL):

curl -A "Jetpack by" -is -H 'Content-Type: text/xml' --data 'demo.sayHello' '{query}' && echo

Command Line

iTerm2 and Oh my ZSH

Speaking of the command line, I use iTerm2 as a replacement for the native Terminal. And I use zsh instead of bash, with oh my zsh to manage my zsh config. (h/t @jeherve). Both are customizable and provide many helpful shortcuts right out of the box.


When I complete a task, I try to make a note of it into iDoneThis. I have an Alfred workflow that allows me to type idid followed by a description. I don’t use this as much as I should, but it is helpful to reflect upon what I’ve accomplished in a day/week.


Hemingway Editor App

When I am writing a post or replying to a non-native English speaking user I often run it through Hemingway. The editor looks for wordy sentences, adverbs, passive voice, and complicated words. It isn’t bullet proof, but it does catch quite a few common errors.

Screenshots / Sharing

I use Cloudup to share files. It lives in my menubar, and I can easily share files by dragging them onto the icon. When the upload completes, Cloudup copies the URL to my clipboard and it is ready to send. If I need to annotate screenshots before sending, I use Glui. Using Glui I can quickly mark up diagrams, add arrows, text, and more before sharing the image on Cloudup.


I’m constantly iterating on my workflow, so none of these techniques are written in stone. Do you have any workflow tips or tricks? If so, I’d love to hear!

4 thoughts on “My Workflow Tips and Tricks

  1. Thanks for the link to Glui/Annotate, Ryan. It is the simple and easy to use image annotation tool I have been looking for a while. Just got it and instantly loved it. And bid goodbye to Snag It trial.

Leave a Reply

Your email address will not be published. Required fields are marked *