My Course Creation Workflow & Tools

I just finished producing a new video course, and I decided to document my process here for any geeks or creatives who may be interested.

When I’m creating a course, I tend to work as a jack of all trades: I write, record, animate, edit, and produce everything myself. This is not the most efficient approach, but it’s how I prefer to operate.

My workflow can be broken down into four distinct stages: planning, writing, recording, and animation.


The planning stage begins as a chaotic mess of notes and ideas that I’ve accumulated over many months. Often these ideas pre-date my intention to create a course—they’re just things I jot down because I feel they may be useful.

When I decide the course is actually going to be a thing, I start collecting these notes into a central location, like a Google doc. I make a list of things I’d like to cover in the course, and then I start doing research.

The research phase tells me what’s out there—what’s been done, what hasn’t; what’s good, what’s not; what people want to know about the topic, what doesn’t matter; etc. I also invariably learn more about the topic during this process, which I enjoy.

When the course transforms from a vague concept to an actual project, it’s time to start outlining.

The way I do this varies. In the past, I would create a long and convuluted bullet list in Google Docs, but that gets messy fast.

While outlining my latest course, I found that I really like the mind map format. I used FreeMind, a Java app, and despite some weird graphics issues on my MacBook Pro, it worked well enough.

Next time I’ll likely go with a native Mac app, though, as there are plenty.

I try to do the majority of the thinking work during the outlining process. By the time I have a completed outline, I feel I should be able to deliver coherent lectures on the spot, if prompted.


From there, I begin the writing process. Some people are surprised to learn that I write every word of my lectures in advance (though I often go off-script). I value preparation.

I do all of my writing in Google Docs, mainly for the convenience of cross-platform editing, not to mention the peace of mind that every change I make is saved automatically—revisions and all.

Writing, for me, is the most intensive part of the process. I’m obsessed with the details: articulating clearly, avoiding fluff and filler, packing in as much value as possible.


Once I’ve got a script, it’s time to record.

I record audio in Audacity with my trusty Audio Technica ATR2100. My tools and processes are almost exactly the same today as in my podcasting days.

Now, you would think four hours of content would equate to four hours of recording—but you would be wrong. Again, I’m obsessed with the details. I’ll often do six or seven takes on a single lecture, and I follow up with a meticulous post-production process. I don’t think I want to know the ratio of recording/editing time to finished content, but delivering an outstanding product is very important to me.


My last two courses have been animated, as opposed to the traditional slide deck format. I think it helps to keep people engaged.

This part is a lot more fun and laid-back, though I’m still very detail-oriented.

My animation software of choice is VideoScribe. It’s pretty easy to pick up if you’ve never used it before, but it still offers plenty of advanced functionality.

I also use Screenflow for screencasts and some post-production work, and I’ve been quite happy with it.

So, that’s my process in a nutshell. Definitely an oversimplification, but it shows what I’m actually doing when I disappear to work on one of these projects.

How To Fix WordPress Image Alignment & Text Wrap Problems On Mobile

Left- and right-aligned images look beautiful on desktop browsers, but sometimes with responsive WordPress themes you end up with something like this:

Yuck. Because of the skinny portrait-style image, the text is wrapping improperly on mobile, and it looks like a mess. Very frustrating, but with a couple of lines of CSS, we can clear this right up.

The approach I’ve found most effective is to automatically center your left- and right-aligned images on smaller screens. To do this, open up the stylesheet for your child theme, or the Custom CSS section of the theme Customizer, and drop in the following code:

@media only screen and (max-width: 600px) {
	figure.alignleft, img.alignleft, figure.alignright, img.alignright {

The logic here is simple: on screens with a width less than 600 pixels, images aligned to the right or left (via WordPress’s default style classes) will be centered via float:none, margin-left:auto, and margin-right:auto. (Feel free to modify the max width to suit your needs.)

The result? The image in the example above now appears centered on smartphones, but still perfectly right-aligned on larger screens:

Much better!

Simplifying My Digital Life

One of the downsides of instant, frictionless communication is that everyone and everything is constantly in your face, which leads to reduced productivity and a sense of general sluggishness.

For example, if I’ve got a set of tasks I need to accomplish today, I’d like to focus on those. But it’s really easy for emails, messages, tweets, and other random notifications to get in the way.

Every time you pull out your phone to respond to a message or read a reply or DM on Twitter, you’re allowing other people to manipulate your schedule at will. You’re also robbing yourself of the coveted mental state of flow.

I’ve recently made some changes to deal with this, and as a result I’ve seen a significant increase in my productivity and a greater command of my time.

Social Media Notifications: Off

Social media is the biggest uninvited time-suck in the world. They lure you in with a push notification, hook you with the algorithmically sorted timeline, and before you know it you’ve spent an hour in this damn app you didn’t even plan to open.

The solution? Turn ’em off.

I’ve completely disabled push notifications for the three major social networks—Facebook, Twitter, Instagram—and the result is pure serenity.

I used to get bombarded with notifications all day every day, mostly from these three apps. So-and-so liked your post! So-and-so mentioned you! And Twitter’s amazing new feature that everyone totally wanted: So-and-so and So-and-so are tweeting about #SomeStupidFuckingThing.

These notifications are not useful to me. They’re disruptive.

Now, when I want to know what’s happening on Facebook, I’ll open Facebook. When I want to know who’s been liking my tweets or sliding into my DMs, I’ll open Twitter.

Spark Email

Spark (for iOS and Mac) may be the best email app I’ve used this decade. It’s reminiscent of the now-defunct Mailbox in that it allows you to “snooze” messages and deal with them later. Great feature, but not the main attraction.

You see, Spark is smart. It automatically sorts your emails into different visual chunks in its Smart Inbox view. You’ve got newsletters, notifications, personal emails, etc.—and they show up in groups of three, which you can easily dismiss in bulk to plow through your inbox like a pro.

Even better, Spark knows what matters, and it only sends you notifications about important email. Never again will a stupid newsletter buzz my Apple Watch while I’m eating dinner.

Speaking of which…


I used to be on hundreds of email lists, some of which I’d opted into, others I was added to by inconsiderate PR people. But I digress…

I decided that after years of struggling with my nightmare of an inbox, it was time to take control. So instead of deleting unwanted newsletters, I made it a habit to open each of them, as they came in, and click the unsubscribe link. Every. Single. One.

I spent about two weeks doing this, and while I still see occasional list emails, I’ve trimmed things down to the point where I can kind of breathe again.

Take Back Your Life

There are three things I know for sure:

  • Technology should be a tool to make my life happier and more productive.
  • Notifications should serve up useful, timely information that matters to me.
  • The time I spend with digital media should always be conscious and intentional.

When these expectations aren’t met, it’s time to simplify.

Content Saturation

Great Twitter thread by Moz founder Rand Fishkin:

Yes, there’s more content on the web than ever before. The barrier to entry is virtually nonexistent these days, which has naturally led to increased competition.

But the reality is that the vast majority of content is mediocre at best.

“Content saturation” is not inherently a bad thing for marketers. It actually presents a massive opportunity for those willing to put forth the effort to create deep, uniquely valuable content that exceeds expectations.

Setting Up Cloudflare Flexible SSL With WordPress

A great way to improve your website’s security (and give yourself a minor SEO boost) is by implementing SSL encryption and delivering your pages via HTTPS.

In the past, this was an expensive and highly technical process. But today services like Cloudflare can facilitate the process for you, eliminating the expense and IT headaches.

Unfortunately, WordPress sites can be a little wonky during the transition from HTTP to HTTPS—but with a couple of plugins you should be up and running in no time. This post is a quick overview of how to set up Cloudflare’s free Flexible SSL service with WordPress.

What Is Flexible SSL?

Flexible SSL is an encryption service available to all Cloudflare users, absolutely free of charge. You don’t need to purchase your own SSL certificate to use it; instead, you share a certificate with other Cloudflare customers.

You should be aware that Flexible SSL is not the ideal solution if you truly want to lock down your site’s security. This is because Flexible SSL is not an end-to-end encryption solution. With Flexible SSL, your data is encrypted while in transit between the user and Cloudflare, but unencrypted between Cloudflare and your web server. If you want full end-to-end encryption, you’ll need to purchase and install a certificate on your own server:

With that said, is Flexible SSL better than what you’ve got now? Definitely. For sites that don’t collect much sensitive user data, it’s a great option.

Setting Up Cloudflare

The first thing you’ll want to do is sign up for Cloudflare, select the free plan, and follow the onscreen instructions to add your domain name.

After you’ve changed your nameservers and they’ve finished propagating, log into Cloudflare and click Crypto at the top:

Make sure “Flexible” is selected under the SSL section.

Setting Up WordPress For SSL

Don’t change anything in your WordPress settings just yet. To prepare your site for SSL, you’ll need to install and activate two plugins.

Cloudflare Flexible SSL

The Cloudflare Flexible SSL plugin prevents a nasty redirect loop problem that often arises when enabling Flexible SSL on a WordPress site. No need to edit any settings or anything—just install and activate.

WordPress HTTPS

Next you’ll need the WordPress HTTPS plugin. Once you’ve installed and activated it, click the new HTTPS link in the main WordPress menu, and change the “Proxy” setting to “Yes.”

Testing Your Site

Cloudflare can take up to 24 hours to issue your Flexible SSL certificate, and that must be complete before you move forward. To check the status, you can try to visit the HTTPS version of your site—e.g. If you receive a security error or a cPanel 404 page, that means your certificate hasn’t been issued yet and you’ll need to try again later.

As soon as your site starts loading over HTTPS, you can move forward.

Enforcing HTTPS Via Cloudflare

Once the HTTPS version of your site is loading properly, go back to Cloudflare and select Page Rules from the top menu, then click “Create Page Rule.”

Enter the URL of your WordPress site in the first box, beginning with http:// and followed by a slash and an asterisk—e.g.*.

From the drop-down box, select “Always Use HTTPS.”

Then click “Save and Deploy.”

Changing Your WordPress Site Address

Finally, you’ll want to go to your General Settings page in WordPress and change your Site Address to https://.

Warning: Don’t change this setting unless the Cloudflare Flexible SSL plugin is running, and don’t make any changes to your WordPress Address.

That’s it! Now your site should be up and running on HTTPS.

Efficiency Tip

Efficiency tip: set a stopwatch while doing things. You’ll become more aware of the time you’re wasting and move faster.