Limited time offer: Pre-order Company of One and get some super-awesome bonuses. Learn more
Paul Jarvis

I like having a boring business

I like having a boring business. I’ve purposefully worked at making it as dull as possible.

There are no all-night hackathons of one or jam-packed days where I sit and work for 16+ hours. There are never, ever just-under-the-wire deadline achievements.

If you watched me go about my day, you’d be bored to tears. You likely wouldn’t see me excited, frantic, or even that energetic. I sit at my computer, get my work done as quickly as possible with the least number of distractions, then I stop working.

This doesn’t mean I don’t work hard or consistently, or even that I don’t really love what I do, it just means I plan my work and schedule in a way that keeps me just busy enough to propel my business forward, but not so busy that I’m constantly reacting and overwhelmed.

Being non-reactive with work means that my schedule exists to get ahead of it. So, for example, since I write a weekly newsletter, busy would mean I was finishing an article at 1am every Saturday night, just in time to hit the 6am Sunday morning blast. Busy would mean putting in an 18-hour day, just before a product launch. Busy would mean waking up at 4am to research a person I’m interviewing for my book.

In the above examples, my business is boring because I write my weekly articles a month or two in advance (note: I wrote this in January). That way I have time to write them as best I can, without deadlines looming. That way I’m not rushing to get something to my copyeditor last minute. I work on products at least months, more than likely a year or two in advance, so I have the space to make sure they’re well made, well researched, and well tested. This pace seems like it’d result in less income or less everything, but the opposite is actually true for me: working slowly, and being boring, means I can make sure the things I do in and for my business are based on things I’ve spent a lot of time thinking about, and not just quickly reacting to.

I’m really not that busy with work. Outside of a few times a year, that’s just never the case. Busy is an exception, not a rule. Busy is being reactive, and being constantly reactive doesn’t seem like the best way to run a business for the long term. I work about 36 hours a week, spaced out over 7 days (since I enjoy working in the early AM on the weekends, I do it). Being busy often means I’m completely failing at pace and scheduling.

This isn’t to say I do boring perfectly. There are times when I’m stupendously busy and 36 hours a week is blown past, waving frantically in the rear-view mirror. But in those times, I think about two things. First, is there an end that I can see to the busy-ness? If so, then it may be worth it for a short while. Second, is this busy-ness accomplishing something that could be done in a slower and more boring way? If there’s no a good answer to that, then I’m going to look hard at how to get un-busy as fast as possible.

Let’s get clear as well on this point, having a boring business isn’t something you need to work towards and achieve once you’re successful. Having a boring business is a mindset and model you can adopt at any time, at any place in your business journey. All it requires it getting real about how much you can do each day before you hit a wall of inefficient work, planning when it’s ok to be distracted and when it’s not, and setting a schedule for your work that doesn’t leave you constantly playing catch-up. There’s no magic formula for getting more work done quickly, some folks just allow for less distractions and more focused work.

Take a product launch (assume the product could be a client project, if you have a service-based business). A busy business, is going to set a deadline that’s leaves just enough time to get it done, as long as nothing goes wrong. Businesses do this because launching something sooner means you’re getting paid sooner. So in theory, that sounds like a good plan, because businesses need to make money. But consider this: nothing ever goes according to plan, and no project or product ever launches after a series of every single thing going right. A boring business on the other hand, may set a deadline further into the future (meaning it’s further from getting paid), but a boring business assumes that some things are going to go wrong, because they always do, even with great plans and strategies. Some tasks are going to take longer than expected. Life is going to pop up and take up more time than you thought it would. Some communication is going to go off the rails and require a bit more time to sort out.

With a busy business, you’ll stress out about meeting a quick and looming deadline, and stress out even more when it’s missed (I’d be rich if I got a nickel every time I heard about someone missing a deadline). With a boring business, you’ll have the time and space required to do a good job, a thoughtful job, and line everything up properly to meet the sane deadline that was set. And best yet, the thing will launch at the same damn time. While busy leads to stress and lost trust from missing a deadline, boring leads to slowly and carefully and hitting the same end date without breaking a promise (to customers or clients).

How we work is another huge driver of having a boring or a busy business. Busy means allowing ourselves to be constantly interrupted and then having to react to those interruptions. Emails that stop our work so we can read/reply. Notifications that stop our work so we can see who tweeted to us or tagged us in an email. Unscheduled calls that mean we’re now focused on something else we didn’t plan for. Boring means we do our best to schedule distractions—so the work we have to do gets done first and with huge chunks of uninterrupted time spent doing it. Only then we can be interrupted with whatever else our business needs to do.

Busy is like sprinting, whereas boring is like a marathon you don’t care about winning. (Because, how the heck do you WIN at business?)

I’ve worked for myself for 20 years and would have burned out, living in an ashram in the mountains with a long beard and vow of silence by now, if I had kept up a busy and frantic pace of work. I want to keep working for another 20 years, so I work hard at pacing myself.

I like having a boring business. There’s nowhere set in stone that business has to be frantic, fast-paced, and stressful all the time. Give me boring forever and I’ll be happy.

Create an app without knowing code

A few months ago I set out to create an app that’s a website which acts like software, but doesn’t require any programming to make. I wanted to see how much was possible nowadays without code – to prove a point to myself that anyone can make software, regardless of technical or programming expertise.

(For programmers, I’m using the term “software” loosely to illustrate a point that anyone can “make” something on the internet.)

The feature-set I wanted for my software was this:

In the past, this might require custom programming to create user accounts and then have features for each user, like saving favourites, rating and reviewing. But there’s so much good, sometimes free software out there, that a simple website like this could get by without any code.

The whole thing is hosted by my friends at FlyWheel, which comes with free WordPress setup, so you don’t have to worry about installing software, just setting up your site and customizing it.

Create an app with WordPress

For all its faults, WordPress is an amazing and super extensible bit of software. Out of the box, with the default theme, you’ve got a fully functional blog. To move past that, you simply need to add a few plugins.

Here’s what I used to make this directory site work:

Create an app with MailChimp

I wanted the website to both alert course submitters via email if their course was approved or rejected, but I also wanted to be able to share news and updates with users, so MailChimp was the obvious choice (see my own MailChimp tutorial here).

Within MailChimp, I created one hidden merge field that gets filled with “yes” if someone signs up for a user account. I also created an Interest Category (i.e. a Group) with 3 options:

  1. Pending: email addresses get tagged as this when people submit their course. I’ll explain in the next section how.

  2. Approved: when I’ve manually reviewed a course and confirmed it met the criteria, and looks good, I’ll approve it.

  3. Rejected: when I’ve manually reviewed a course, saw it did not meet the criteria, or it looks of poor quality, I’ll reject it.

Each tag triggers a different automation sequence. So when someone first submits, they get an email telling them they’re in the queue, and I’ll review it shortly. If they’re approved, they get a welcome message saying they’re listed on the site. If they’re rejected, they get a message saying how they can improve.

Create an app with Typeform & Zapier

If I had wanted people to submit courses that were automatically added to the site, I would have set up a form directly in WordPress to do so. But, since this is a list of the “best” (super subjective, I know) courses, I wanted to manually vet them before including them on the site.

To that end, I used TypeForm to collect submissions. The form collects everything from the screenshot to the course details.

From there, I get an email with the submission, and Typeform pushes the data to both MailChimp (adding the person to the pending queue) and to WordPress (to create a draft of the course, with a few details filled in) using Zapier.

That way, all I have to do is view the submission in my inbox, and if it’s good, finish updating the draft in WordPress and publish it. Then I go into MailChimp to set the group tag from “Pending” to “Approved”. If the course doesn’t make the cut, I simply delete the draft and set the group tag to “Rejected” instead. And remember, both tags fire off an automation email with details to the course submitter.

To summarize how to create an app without code

There are certainly limitations to building software without knowing how to code and I love to hire and work with software programmers, but there are also so many possibilities to create functionality on websites or courses without ever looking at the source code.

Since I am a designer/developer, I created a custom theme for CourseList, but most any theme will work, even free ones. Just pick any design that fits what you want to accomplish.

Don’t let the fact that you don’t know HTML or PHP or JavaScript or whatever technology limit your online vision. You can always, and fairly easily, create whatever you want. Or at least, a pretty functional MVP of your idea.

This whole project, start to finish, took me a total of two days. The first was spent on design (which can be skipped if you pick an existing theme) and the second to set it all up. Two days, start to finish, idea to launch. Sure, it’s not perfect, and many processes could be tweaked to be faster, but it only took two days to launch. One thing’s for sure, you don’t have to be a tech whiz or programmer to create things online anymore.

So, what will you launch two days from now?

How to create & sell an online course in WordPress: a step-by-step guide

[PSST: There are also three most posts about creating a WordPress online course herehere and here]

I started creating WordPress online courses in 2014. At the time it was for fun and really just to see if I could create one (I never intended it to be the main part of my business).

But now, years later, I’ve created courses that have been taken by over 10,000 students (which is scary to imagine) and generated over $1,000,000 dollars in revenue. Online courses have become the main source of revenue for my business. My three main courses are Creative Class, Chimp Essentials and Grow Your Audience.

Monthly Stripe charges($27k/month is pretty nice for a single course (not even including Paypal or partner revenue).)

Along the way, I’ve experimented a lot with what works and what doesn’t – not based on what other people or “industry thought leaders” were saying – but what works for me and my style of communicating with my audience.

What I like about online courses is this: it democratizes learning. You don’t need acceptance by some stuffy admissions board, you don’t need to go into 6-figures of debt to get an education, and you can learn specifically what interests you. Online courses are also a $107b industry and growing every day.

Here’s what you’re going to learn:

The software & costs for my WordPress online courses

There are a million plugins, processors and mailing list software you can use to create your course, but I’m going to share with you my top pick because it’s the easiest and cheapest (which is good, because I’m cheap). In the “Total Costs” section there are discounts for each of the software products I use too.

Restrict Content Pro (WordPress plugin)

I’ve tried so many WP course plugins, and this is by far the easiest to both setup and use moving forward. RCP lets you sell access to restricted pages on your website.

To setup, all you have to do is install the plugin, setup how you want to get paid, and then pick which pages are only accessible to your students. The good thing is, if you sell multiple levels of access (at different price points), you can pick which type of students can see which content (and up-sell from the middle/low tiers to the highest one). You can even use RCP to create an app without knowing code.

Stripe and Paypal

To be honest, I hate Paypal. It’s awful to use and their customer support is atrocious. That said, lots of people want to use it to pay for things online. I noticed a 20% increase in sales when I added Paypal as a payment option to one of my courses, and for every course I have Paypal as an option, I see 50% of customers paying through Paypal. So it’s a necessary evil if your audience uses it.

Stripe, on the other hand, is great. It’s easy, it works well, and I never have problems with it. Payments go into Stripe and are transferred straight into my bank account without me having to think about it.


If you’re going to have an online course, you need a mailing list – period (watch my free MailChimp tutorial here). It’s what will sell your course the most effectively and makes it easy to stay in touch with current students.

MailChimp is the easiest newsletter service to use and integrates with RestrictContentPro if you use MC4WP. If you only are going to a single signup form, you can even use MC4WP for free.

MC4WP is a useful plugin regardless for every WordPress website because it lets you update subscribers as they sign up for or do different tasks. What I mean by that is, a typical MailChimp form won’t allow a current subscriber to signup for your webinar or free email series since they’re already on your list. But with MC4WP, you can update existing subscribers and keep them on your list but give them what they continue to sign up for.

MC4WP’s User Sync also keeps your mailing list sync’ed with purchaser information, so you can send things like onboarding sequences or post-purchase education sequences to buyers.


Honestly here: I created this plugin because I saw a tremendous need for it. WPComplete lets your students mark lessons as finished, and gives them a progress bar (which prompts them to keep going and finish your course. It only takes a few minutes to setup, and you can customize it to match your colours on your course.

Total costs

As I mentioned, I’m pretty cheap, so I like having my courses on WordPress because a) I have full control over the platform and b) operating costs are pretty low. I’ve also got exclusive discounts for you on all the products I use (they’re all affiliate links, but the links are worth over $110 in savings):

  1. MailChimp: $50/month for 5000 subscribers (if you list converts at around 1%, 5000 subscribers will mean 50 could be paying customers, which easily pay for the $50). This link gets you $30 in credits.
  2. Flywheel: $15/month for hosting, and it comes with free SSL (you need SSL to process payments securely – it’s what makes the a website URL start with https instead of http). Use the code “thecreativeclass” for 3 months free on every plan.
  3. RestrictContentPro: $49/year. (10% off using that link.)
  4. WPComplete: $59/year. (30% off using that link.)
  5. MC4WP: $49/year.

All in, that’s around $75/month or less than $1,000/year if you including buying a premium WordPress theme (which is nice but definitely not required). Even less with the discounts above. This is also less than a lot of hosted or fully managed course software (which isn’t infinitely customizable or owned, like a WordPress course is).

Since all my courses cost between $147-$300, I can cover the entirety of my expenses by selling one course per month. That’s totally doable.

Past the above costs, you also get charged for transactions on Stripe and Paypal (2.9% + .30c), but those only happen when you make a sale.

How to setup your WordPress online course software

Now that you have all the software needed for your course, it’s time to connect everything.

Setting up Restrict Content Pro for the first time

  1. Install RestrictContentPro, activate it, and add in your licence key.
  2. Go to Restrict then Subscription Levels, and create a name and price for your paid course. Set the Access Level to 2 (this is an arbitrary number, but it’s important for email automations later). Unless it’s a monthly membership, set the duration to 0 (for unlimited). You can also add a “free trial” or “free lessons” subscription that’s $0 and access level “1” to help get people into your funnels and give them a sample of what you’re teaching.
    RestrictContentPro settings
  3. Then go to Restrict, Settings. Click the Payments tab, here’s where we connect Paypal and Stripe.
  4. Set your currency (the currency your Stripe and Paypal account are using), and then enable Paypal Express and Stripe.
  5. Enter your Stripe API keys (found in Stripe, Account Settings, API Keys ). If you check off Sandbox Mode, you can test Stripe payments using a tester credit card of 4242 4242 4242 4242 (any CVS, any Zipcode, any expiry date) – to make sure payments and automations work. Just make sure to uncheck Sandbox Mode before launch.
  6. Still in Account Settings in Stripe, click Webhooks, and Add endpoint… and enter a the URL (it’s the URL that appears just above Paypal settings on the Restrict payment page).
  7. In your Paypal account, go to Profile and Settings, then My Selling Tools.
    Paypal Selling Tools
  8. Go to Instant Payment Notification, turn it off and enter the Notification URL of (replacing with your domain name).
  9. Now go back to My Selling Tools, click API Access then Add/Edit API Permissions, then View API Signature.
  10. Paste your API Username, API Password and Signature into the corresponding Live Fields in Paypal Settings (still on the Payment tab in Restrict, Settings in WordPress).
    Paypal API

Now your course website is connected to your payment processors. Which means you can collect money from students!

Breath deeply, that’s the most technical part of the entire setup and you only have to do it once ever.

Connecting MailChimp to RestrictContentPro

Your mailing list is just as important as your course software. Why? Because it’s what going to sell your course (email marketing destroys all other channels in terms of ROI and conversion rates).

So your goal with your course mailing list is two-fold:

  1. Get people into your “funnel” – meaning you want to trade every visitor that’s a good fit for your course something for their email address. For my own courses, I’ve found that trading for both partial access to the paid course and related lessons to the paid course both work great for getting email addresses. Once you have someone’s email address, deliver what you said you’d give them, and try to convert them into paying customers.
  2. Purchase tracking. You need to let your list know if someone becomes a paid student. Once that happens, you can a) stop sending them pitch emails (they already bought) and b) start educating them on how best to use your course and it’s materials.

There are tons of options for creating a lead magnet that will entice visitors to give you their email address as a trade for something awesome like partial access to your lessons or a free email sequence of related lessons.

To track this, you need to connect your list to your site.

  1. Install MC4WP, activate it, and enter your licence key (if you have the paid version).
  2. Install MC4WP User Sync, it’s a free add-on that will tell your list when someone purchases your course or when someone signs up for your free sample subscription.
  3. Go to MailChimp for WP and enter your API key. If you aren’t sure where that is, click “Get your API key here” and it’ll take you the page you need in your MailChimp account.
  4. Go to MailChimp for WP, then User Sync.
  5. Enable Autosync as “yes”, select the list you want to sync with, select “no” for Double opt-in and “subscriber” for the Role to sync.
  6. Go into your MailChimp account in a new tab, select your list, then go to Settings, List fields and Merge tags. Add two more Text fields, one called “Subscription Level” and one called “Status”.
  7. Back in MailChimp for WP on the MailChimp page, click “Renew MailChimp lists”.
  8. In User Sync in MailChimp for WP, in the Send Additional Fields sections, this is the most important part. In “User Field” start typing “rcp_” and select “rcp_subscription_level” then to the right of “to” select, “Subscription Level” (that’s the merge field you just created in MailChimp. Click “add line” then start typing “rcp_” in the next line and select “rcp_status” and then to the right of “to” select “Status”.
    MailChimp for WP sync settings
  9. Click Save Changes.

Voila, your list and course are now connected. What the above means is that MailChimp now knows if someone signed up for a free trial or purchased your paid course. This means you can create automation sequences in MailChimp that trigger if the merge field for the following:

Now your list is going to stay up to date with your course signups, and you are going to be properly segmenting free trial subscribers and paid subscribers. The possibilities are endless for what you can send to each segment in terms of emails that’ll help them decide if they should buy or help them get the most from the course if they did buy.

Letting students track their progress

You want to make sure students are propelled through your lessons from start to finish, so they can get the most of the course. Successful students = a successful course. To do this, it’s a good idea to let them mark lessons they’ve finished as complete and then see their overall progress.

That’s why I co-created WPComplete, it’s a simple plugin that let’s student track their progress and teachers track the overall progress of students through the lessons.

  1. Install WPComplete (get $15 off using PJCOURSE) and activate your licence key.
  2. In Settings, then WPComplete, customize your button colours and text.
  3. Now, on every page that’s a lesson page (hidden behind RestrictContentPro for paid members), you can check off “Enable WPComplete”. You can also pick which course it’s part of (if you run several courses on your site) and pick which lesson should load after they click “Complete”.

That’s it! You can now use shortcodes found here to display progress bars, text percentages of progress even a circular graph of progress.

If you have a “dashboard” on your course, or a page that lists all the available lessons, WPComplete will automatically append some CSS classes, so you can customize how completed vs not-yet-completed lessons look like – editable on the Settings page.

You’re set up!

Congrats, you’ve now connected all the pieces of your course together. It may seem like a lot of work, but you only do it once, and then it runs forever.

A good plan is to test this throughly before you give people access to your potentially signup and buy. If you use Google Email or Gmail, you can signup with your variations of own email address, so you get the emails, but you’re signing up for a fresh testing email. Like so: if your email is [email protected], then you could try [email protected] to test the free trial. And then [email protected] to buy the course in Sandbox mode with the test Stripe credit card. So it’s your [email protected] Then you can make sure payment processes, access is correctly granted, and the email address is properly added to MailChimp with the correct merge field data.

Planning your online course in WordPress

Now that the tech stuff is out of the way, let’s get into actually planning your course material.

Creating content for your course can be overwhelming or stressful, but there are two things that can really help:

  1. Make your primary goal the success of your students. If students achieve something, solve something, get better at something because of what you teach then, it’s a win-win. They win because they learned something useful and you win because they’re now going to tell everyone they know about it. Every decision you make about content needs to consider, “how will this help my students succeed?”
  2. Work backwards in small steps. Online courses have a lot of moving parts. For payment, to access, to video lessons, to workbooks, to email funnels. The only way to make process is to bite off tiny pieces of work and chisel away at each tiny piece.

The main things every online course can have:

  1. Video lessons. You don’t have to have videos, but this is the easiest and most engaging way to teach someone online. This can take the form of you talking into the camera – which is scary but just requires a camera. Or, which is what most people do, requires you to record yourself talking over slides or screencasts.
  2. Some written content. Even if it’s just the transcribed content from the videos, it’s important to have a bit of written content so students can go back and skim what they learned without having to re-watch a video.
  3. Actionable materials. Whether it’s PDF workbooks (boring) or interactive workbooks from OfCourseBooks (note: I used to own that company) – having some way for students to take notes or write down their ideas can really help with taking someone from start to finish of your course.
  4. A community. This isn’t necessary, but having a FaceBook group or Slack channel for paying students can go a long way with helping them finish the lessons, talk out their problems or even just connect with likeminded folks who are also taking the course. With my own courses that have communities, I’ve found that people come for the lessons but stick around (for years even) with the community. Both FaceBook and Slack are free to create a private group for your course.

Congrats, you’re ready to sell your course!

Now that you’ve setup all the tech and created the lessons, you’re ready to plan for your launch. I go into massive detail about how I launch and re-launch my courses in this article , this article and this one .

For about $75/month you can own the platform your course uses, which lets you be in 100% control of what you do, how you sell it, what it looks like, and the overall customer experience. That’s worth it to me (instead of using a hosted platform) and I can cover my costs with only needing a single sale per month.

Now get out there and create your course.

Workshop to course

I want to share a simple way to test your big ideas, like a course or a web app, with a smaller idea first – like an online workshop.

I’ve done this a bunch of times, and it’s worked quite well—not because it made all the money but because it was an excellent way to test the waters with a smaller amount of work, see the response/engagement (and revenue) and then decide if the idea was worth doing a lot more work on.

I took this approach with my own courses.

What am I talking about?

Using a live, online workshop to test your next course idea

Running a workshop is less work than creating an online course because it all happens real-time, on video. You don’t need a complicated LMS to host, drip, manage your lessons or your students—you just need to teach them, live. There’s also the option to teach one or two of your lesson ideas (not the whole course) for a cheaper ticket price than the course. You can even sell access directly through your webinar software (Crowdcast, for example), so you don’t have to setup a payment processing option on your end.

Not to mention you can see how many people are willing to pay you (this is important because free offerings don’t always translate to paying customers). And then, if people are buying, you can move forward to create your full course (or pivot and not do it if the reception is less than ideal for you).

Here’s how I’ve tested my course ideas (and will continue to do so):

  1. Start dropping hints about your workshop on your newsletter, website and social media – not just the subject/topic, but why someone would want to take it (i.e. the benefits or the outcomes they’d potentially see).

  2. Create slides with talking points to teach one or two lessons (or more if you’re a keener). Don’t worry so much about the design or layout, just make sure they’re chock-full of useful information. I always aim for a maximum of 15–20 minutes of talking per lesson.

  3. Use CrowdCast’s event creator or whatever webinar software you use and like to sell access to your event. Or, create a simple page on your website that sells tickets (using Stripe, PayPal, or whatever you’d like) and collects the buyers email.

  4. Pick a date/time when tickets go on sale (I typically put them up for sale two weeks before the event). If you’re hosting your own sales page, add a countdown timer to it, so folks will know when tickets are not available anymore (like the day before the event or a even a few hours before it starts).

  5. 2 weeks before the day your tickets go on sale, promote the sales page to your newsletter, your website and all your social media outlets. Again, talk about the reason people would benefit from the workshop.

  6. The day before tickets stop being available, remind your list and social connections that it’s the last chance to snag tickets. Last minute sales always account for around 50% of total sales for me.

  7. The day before the event, send an email to buyers (who you collected via CrowdCast or your sales page) the URL to the actual webinar. Remind them to be there a few minutes early, to hang out in the chat (chats are always terrific in webinars for folks to discuss the topics you’re bringing up with each other).

  8. The day of the event, 15–20 minutes prior to starting, send one final email to buyers with the link to join the webinar. Keep this email short and sweet. Crowdcast can do this automagically for you (as can most webinar software).

  9. Do the workshop! Don’t worry, you’ve got this. I typically run these by starting the call, talking into the camera for a few minutes, welcoming folks and asking a few questions. Then I introduce myself and talk about what I hope people get out of the workshop. Then, I turn my camera off, and go into my slide deck, full screen, and run the lesson. I remind myself constantly to slow down, take my time and not rush. After I’ve taught each 15–20 minute lesson, I return to the screen and answer questions that people have about the lesson. Then I run the next lesson, and the next, until all the lessons are done. Then I do a final Q&A and thank people for attending.

  10. Pro tip: I also record the entire workshop locally using QuickTime’s screen recorder. I start recording just before I go live, and stop recording just after I end the workshop. That way I have an HD, uncompressed copy of the entire workshop, so I can use it later. I also pause for a few seconds before I start a lesson and after I finish the last slide (so it’s easier to edit the video later).

  11. After the event, I send a thank you email to all the buyers. I also give them a private link to re-watch (typically I upload the Quicktime recording to an unlisted video page on Youtube). I also ask buyers a few questions: What did they learn? What was their favourite bit of information? What did they think was missing? What could I have improved on? I use their answers to help me write the sales page for the full course, as testimonials or success stories, or as feedback to what I can alter/change to make it even better.

  12. If sales were good for the workshop, feedback was positive and I felt good about teaching it, then I know it’d be worth making into a course. And now, since I’ve got an HD recording of the whole thing, I’ve got at least a few lessons already completed. I’ve also now, based on feedback, got a really good start on how to position the value of the full course.

  13. After making the decision to move forward, I upload the video lessons I’ve already got to a course platform, and record any additional videos I need.

  14. Once the course is ready to go, I email the existing buyers of the workshop and give them free access to the full course. Why? Because they already bought all or most of it. People like surprises and bonuses and sometimes that can even help with promotion, since they can tell their own audiences about their experiences with you and your material. They’re also a perfect fit for affiliates if that’s your thing.

  15. Then I get to work on launching and selling it as a full course, knowing that it already worked, to some degree, as a live workshop. And I’m armed with proof that what I taught helped a bunch of people already. To make my courses I use RestrictContentPro and WPComplete.

Yes, there’s a whole lot of steps here, and it seems like doing almost-double the work for a single idea. But by teaching what you want to teach live first, you can really get a solid sense of not only whether people are willing to buy, but how the folks that did buy react to what you’re teaching (in real time). You also get to launch a full course or an app, if it comes to that, with raving fans and testimonials from them, right at day one of your launch.

It’s been so helpful for me to do things this way for my course ideas, and ultimately, made the full courses better for it. I hope it helps you too.

Everything you wanted to know about creating a $300k+ online course

In part one I covered how I built my freelancing course, Creative Class. I also talk about software, my online course setup and what was involved in creating it here. It made $100k+ in the first 6 months. Then it did a LOT better…

Now, with over 2,200 students, it’s grossed $400k in 18 months. It’s incurred $25,806 in expenses and has taken hundreds of hours of work.

[PS: There’s an even newer post now that I’ve generated over $1m over the past few years.]

As I mentioned in part one, this is just how I created and sold my online course, not how anyone else should do things.

Mostly what I want to stress is that you can do this. Prior to creating courses, I didn’t know how to create a course. But I worked at it, tested things, and measured what worked. It’s not rocket science (which doesn’t technically exist—it’s aerospace engineering), it’s just starting small, launching quickly and iterating.
If I can do it, so can you.

Multiple launches

You’ve got to keep launching. That means for any product you’ve made, especially if it’s evergreen (meaning it’s always available), you’ve got to find ways to launch it as often as possible.

Since Creative Class is evergreen, I’ve had to brainstorm and experiment with various ways to launch it. And luckily, with each new launch, it’s done even better. Here are the 5 best “launches” I’ve had so far:

1. Releasing a free email course that relates to the paid course

I created 7 new lessons for my course that were delivered by an email automation sequence in MailChimp. I spent as much time writing and tweaking them as I did for the paid ones. This was important because even though it was free, I wanted the value and quality to be as high as the paid product.
At the end of the email sequence, the full course is pitched. I’ve sent over 118k emails with this automation sequence. The release of the email course generated $35,825 in the month it was released (Feb 2015).

2. Launching a community

I wanted to launch a community (a Slack channel + monthly live, online hangout) for the course at the start, but I put it off in favour of launching a minimum viable product (MVP) first. I’m glad I did that because when I was ready to focus on the community for the course, I already had a critical mass of students ready to participate.
The community costs an extra $90/year but I offered existing students (~800 at the time) free access. This helped populate the Slack channel on day one with hundreds of eager freelancers. That way when new people paid to get access, they weren’t just talking to themselves.

What I’ve found is that people come for the course and stick around for the community.

The Slack channel is my personal favourite part of my course, because I get to see students interacting with each other, hiring each other, and solving problems with each other — based on the teachings from the lessons. The live monthly calls also give me a chance to answer questions from students and chat with an expert in a specific topic on the call.

The month I launched the community (May 2015), the course generated $38,892, which is my best revenue month to date.

3. Relaunching the site

When I told the people that I was redesigning and reprogramming my course, they all thought I was crazy because it looked pretty good and worked perfectly. But as a designer/programmer, I wasn’t happy because the brand was no longer consistent (it had grown with many more moving parts) and the code-base wasn’t as good as it could be (it worked, but it was hard to scale and adapt).

I spent a month redesigning every single screen, interaction, email and file. I spent another 2 weeks rewriting, editing and working with my editor on every piece of content in the course. I spent yet another 2 weeks reprogramming a new WordPress theme from scratch for the course, one that could be more easily updated and added to.

The focus of the redesign was simplicity. If it was “pretty simple” for version 1, I wanted version 2 to be “ridiculously simple”. So I took out elements that were just there to look nice and I tried my best to balance space with what would fit on any given screen.

The site relaunch (July 2015) brought in $34,532.

I also starting using the plugin I co-created, WPComplete, to let students mark lessons as read.

4. Removing evergreen discounts

Although I’m happy that the course itself is evergreen, I also had evergreen discounts for the course (in my mailing list, through other promotional outlets, on social, etc). My friend Kathleen Edwards made me realize how silly that was, since it removed any urgency to buy (pro tip: surround yourself with smarter-than-you friends).

So, when I redesigned the website, the sales pitch included the fact that any/all evergreen coupon codes would disappear in a week. This strategy also helped with the $34,532 number for July.

5. Releasing a podcast

I decided that I since already have, use and know my podcasting equipment, it wouldn’t be that much extra work to add a podcast about freelancing to the course. I decided on a short (~10 minutes per episode) weekly podcast that’s just me talking. That way I don’t have to worry about guests or scheduling or editing — I can just record, tweak the audio and release.

The podcast, The Freelancer, launched in September 2015 and went to #1 on Product Hunt on the day it came out (a Sunday, so the competition on PH wasn’t as high as a weekday). It got into iTunes coveted “New + Noteworthy” and hit the top 5 in business podcasts. It’s currently averaging 2,500 listens per episode and about as many unique downloads.

I released a $100 discount with the launch of the podcast, which generated $23,508 (Sept 2015).
For more details on starting a podcast, I wrote a whole article about it here.

Here’s where a lot of other online product makers go wrong: they spend months creating something, write one email and a social media status update, then ultimately can the product because it wasn’t a successful launch.

What I’ve found, when you stick with getting what you’ve made in front of the right people in as many ways as you can think up, is that your best revenue months could be ahead of you — months or years after launch. Sometimes things require a bit of traction and work to get off the ground.

Small things matter

After my course launched and started to do well I realized that the momentum wouldn’t stick unless I kept working on it. So I reached out to a lot of folks with much larger courses and audiences than mine to figure out what they were doing.

What I learned from these conversations is that:

1. Making something “as great as it can possibly be” means that your work is never done
This is why I redesigned, rewrote and reprogrammed Creative Class from scratch. This is why every month I reach out to random students to see how they’ve used the lessons, what they think of the course and what could be improved upon. This is why I spent weeks on 3 onboarding emails.

Making the course as great possible also means making it as great as possible for me, the creator and guy who keeps it running. This is also why I sign-up for the course myself every few months to re-evaluate the onboarding process. I want to make sure it’s both great for the new student but also that it covers everything it needs to.

If I was constantly getting emails with technical questions or support, charging a few hundred dollars per student wouldn’t be worth it. I don’t remember the last tech support email I received from students, probably because I’ve spent so much time iterating on, testing, and fixing the onboarding process and lesson flow.
I also added small touches, like making all the metadata in the audio lessons match up, so if a student added them to iTunes, they’d appear on an album (with Creative Class album art).

2. Quality partnerships matter
It’s not just a matter of getting lots of people to sign-up as affiliates to your course. I’ve had affiliate programs for other products I’ve sold and it’s generated close to zero dollars for both parties. What’s more important is the quality of those partnerships and also how your course fits with their audience.

The best partnerships I’ve had so far have been ones where the work went beyond generating an affiliate link. They’ve shown the relationship between myself and them, they’ve illustrated why they trust my course and why they think it’d benefit the audience they’re in contact with. They’re also specific in tailoring the pitch to the needs of their audience.

3. Success stories need to be illustrated
The final piece of the puzzle that I learned from people with massively successful courses is that they’ve made their pitch heavily about the stories of people who took their courses and saw benefits or successes. It’s a much easier sell when potential students can read about other students who used the material, applied it to themselves and gained something.

Luckily, from day one, I have several points after purchase where I find out from students what they’ve learned, what they’ve applied and how they’ve benefited. So from there I’ve been able to have my editor interview and write some amazing success stories of my own students.

My brief foray into ads/remarketing

I’ve seen a lot of other people have success with paid ads, so I figured even though I feel pretty negatively about them, I needed to give them a shot (if only to validate my feelings about them).
I hired 2 experts, spent $3,000 over two months on Google ads and remarketing and made a total of $400 in revenue from them.

While I can’t know exactly why it failed so badly, my guess is that my course (and brand in general) is like cilantro. At your core, you either love what I do or hate it. And, like cilantro, my course isn’t for the masses. It’s for a very specific type of freelancer with a very specific palette. I talk about unicorns and pirates. My sales video shows my hand/foot tattoos (and I’m never wearing socks or shoes in it).

Screw ads, back to what I know

It didn’t take long to realize that ads weren’t right for my course. Plus, I never felt great about running them. So I turned instead to what I know best: content marketing.

The problem was that I didn’t have time to write an extra article a week for my course (since I already write an article a week for my own mailing list). So instead, I decided to pay writers whose work I loved, to write articles for me. I post them every Monday on the site.

This keeps my brand and course on my audience’s radar (since 10,000+ folks have signed up for the mailing list for these) and generates a few sales a week. This mailing list is also great to announce new features and launches too because it’s full of freelancers who are interested (otherwise they’d have unsubscribed) but haven’t pulled the trigger on the paid course.

I freakin’ love content marketing. I get to pay freelancers that I admire to write articles for me, and those articles generate eyeballs and revenue for me. It’s a win-win.

What went horribly wrong

Making a mistake with a customer’s money (like taking it without asking), is a worst-case scenario for any digital product maker. And that’s exactly what happened to almost 2 dozen students of my course one day in August 2015.

The service I use for charging credit cards decided to charge the course price ($300 total) as a monthly fee (i.e. $300/month). I couldn’t turn it off, I couldn’t stop it from charging students another $300, all I could do was wait for the service provider of that system to fix the problem.

Even though it was a software glitch in a piece of software from a service provider that I have no stake in (other than being their customer), as the person who made and sells the course — it was entirely my fault. It doesn’t matter if their system messed up, I’m the person facing the customers, so I own the mistake. This didn’t bother me, because if I do something wrong, I’m happy to own it. It was just frustrating that internally it wasn’t my fault, but I nevertheless had to take credit for the problems my customers faced.

My reputation is all I’ve got. More important than my bank account statements, Twitter followers or mailing list numbers — my reputation for the work I put out into the world is the most important thing to me.

This is why I apologized to customers, even ones that hadn’t noticed the extra charge yet. I acted as quickly as I could and why I upgraded their accounts for free. I like my reputation and I’ll do whatever it takes to keep it. In the end, the type of business I want to have and be known for is one that values trust and openness over profits. It’s the main reason why I work for myself and not a big company (because I get to control it).

To summarize

Creating a stream of passive income is a whole lot of constant work. I’m always required to figure out new ways to launch the same course to new people.

The main takeaways:

  1. To continue making money with a product, you’ve got to keep launching it.
  2. Making something as great as possible means your work is never finished.
  3. Finding and fostering good partnerships is important to making sales through other people and their audiences.
  4. Illustrating your customers’ success from using your product goes a long way to building trust and generating sales.
  5. Sometimes you have to experiment and fail with how you promote your product(s).
  6. Mistakes happen. It’s not as much about what went wrong, but how you fix it.

While I continue to learn much about making products and online courses, the advice I give to folks who are thinking about making their own course hasn’t changed: Start small, launch quickly and iterate based on what you’re seeing or hearing from your customers.

Podcasting for freelancers

I love podcasting. The reason I love it is because I rarely need to think about it.

There are a thousand (or more) articles out there on how to make a living podcasting, or how to spend all your time learning every single aspect of podcasting, or how to be the next Roman Mars (who, if you live and breath podcasting, is a super big deal).

But I don’t want any of those things. I just like using podcasting as one piece in my overall brand and marketing strategy. I’ve got other things on my plate. You do too. Too many other things to let one thing take up all our time and energy.

Like I said at the start though, this is why I love podcasting, because it doesn’t require a ton of time to do.

First, let me break down how both my shows work.

Invisible Office Hours

The first podcast is one I co host with Jason Zook called Invisible Office Hours. We release the show in 12 episode seasons approximately twice a year, so we can focus on it for a short burst, then go off and do other things.

We record once a week for 2 hours, for 6 weeks. That gives us 12 shows in the same number of hours. There’s no pre-planning, just a list of topics, which we pick the second before we hit record. We don’t worry about banter (we’ve got that in spades) and we let the conversation go where it needs to go. We do it in a single take, unless there’s a technical problem (like Skype crapping out).

Once we’ve recorded an episode, we ship it off to podcast edition who then edits and masters it and puts it on Dropbox for us.

My band did the intro/outro music and a friend of mine (whose name/voice you’d know if you heard it) did the 5s intro, which she recorded on a text message to me. We don’t have ads or sponsors, but we have a short note at the end on how we’re monetizing the season (more on this later in the article).

Then, every Tuesday for 12 weeks we release an episode on iTunes from SoundCloud and send out an email to our newsletter from MailChimp (see my MailChimp tutorial here). We also tweet about it from both of our accounts and the @InvisibleOH account (if we remember).

That’s it. Between seasons we don’t think about the podcast past making notes on topics we may want to cover.

The Freelancer

This is my solo podcast. There are no seasons and I release at least one episode a week. It’s a short, 10 minutes or less show that starts the second the track starts playing — no intro music, no sponsors, no pre-roll, nothing. Just me saying “hi” and getting into what I’m talking about.

Because it’s just me talking, and that can be scary, I do about 10 minutes of producing before I start recording. I think about the topic I’m going to discuss, make notes, maybe do some research, think up a story or two and bring it back to advice that could apply to all freelancers.

Since it’s only 10 minutes, I typically have less than a page of bullets to talk about.
There are no guests either, so I don’t have to schedule anything — I just record whenever I’ve got time, edit it myself, and add on a tiny outro that promotes my course.

All in, it’s: 10 minutes of producing, 10 minutes of recording, 10 minutes of editing (and re-listening) and then I upload to SoundCloud which puts it onto iTunes automatically.

Tools and software

For Invisible Office Hours we do video calls on Skype so we can both look longingly into each other eyes, but also, more importantly, look for cues when the other person is going to finish talking.

We record both our audio synced together using Call Recorder, which is a Skype plugin. We also record our local audio using QuickTime.

Those three files (one local audio file each, plus the synced Call Recorder file) is what we give to our engineer.

We record using Rode Podcasters (my favourite mic, after trying several) and always wear headphones so there’s no bleed. Jason typically wears his iPhone earbuds, and since I’m nerdier, I wear my favourite Sony MDR–7506s.

Skype is free, QuickTime is free and Call Recorder is $30. Yes, there are 100 other tools we could use, but this is what we use. It’s quick, easy and gets the job done.

For my solo podcast, since I don’t even need an internet connection, I simply record using Quicktime. I try to get a single take, but if I need to cough or there’s a technical problem, I just start another QuickTime file.

I mix using Garageband, so I can stitch together multiple files if I need to and so I can use the same outro over and over again. I wasn’t taught how to use Garageband, so I just drag the files so there’s no space and tweak the levels a little so I sound clearer. It’s not as great as a pro would do, but it’s quick and cheap.

For both shows we use SoundCloud to host the audio files and generate the RSS feed. We could use libsyn (which is more of the industry standard) but SoundCloud’s got a nicer UI and I’m superficial like that. Plus, SoundCloud is easy and works — and the embed widget looks good on my websites.

To add your file to your podcast as an episode, you drag your file to upload it, enter in the title, description, artwork, tags and it creates the episode. It also adds the episode to its RSS feed, which iTunes then notices a few hours later, and the episode shows up there as well.

Artwork? PSSH. I used an old photo of myself with plain white writing over top of it. You just want something that’s noticeable and easy to read as a tiny image. You could even use Buffer’s Pablo (for a square image).

SoundCloud tracks how many times each episode is played, and from where if you’ve got a pro account. I also use blubrry to track how many times each episode is downloaded (which is more important if you want to sell sponsorships — more on that further down).

Sorry to disappoint, but there’s not much more to it than that! I told you it was pretty easy and didn’t take a lot of time.


Think of each podcast episode like a blog post. It’s got a topic, a title, some keywords and a unique URL.

Share your podcast with your audience, and if you’re growing your audience, share it where they might notice it.

But just like blog posts, your content of your podcast needs to be interesting, valuable and engaging with your specific audience. If it’s not, people won’t want to listen.


A lot of people start podcasts because from the outside they seem like an easy money maker: you make a bunch of them and companies throw bags of money at your face! Hell, John Lee Dumas makes $250k+ A MONTH with his podcast and Pat Flynn does a cool $100k+ A MONTH with his.
In reality though, the people who share that sort of information are typically at the top of their industry. It’s attainable, sure, but it’s not the norm.

The industry standard revenue model is $15–25 CPM (cost per thousand) for a 15–60s sponsorship. So if your podcast is getting ~1000 downloads per episode, and you have one sponsor, you’ll get about 20 bucks an episode. So basically, vegan mac and cheese eatin’ money.

I’ve never been a fan of “industry standard” though so I prefer disruptive revenue models for what I do. More work? Yes. But it’s creative work, and I like doing it.

We had a regular sponsor for Invisible Office Hours’ first season, and we only agreed to it because they said we could use Star Wars references in the ads we recorded, and we really liked the product. It was ok and the sponsor was a great company, but we decided against sponsors moving forward.

For season two, we sold a bundle of our existing books and courses called the BUNDLE OF AWESOME (it has to be all caps, because it was that awesome). It brought in $40k+, meaning about $3300 per episode. That’s more than any sane sponsor would pay us using industry standard rates. Plus we had way more fun doing that.

For season three we’re selling (present tense, since it’s not done yet) a one-day workshop using a bumpsale pricing model and it’s made ~$5,000 so far.

While I don’t make any money directly from my own podcast, The Freelancer, it’s there to drive sales and brand awareness for my freelancing course, Creative Class. I ran a discount for the course during the launch of the podcast and it generated $23,508 in course sales. I’ll be employing similar experiments moving forward with discounts or bonuses via the podcast for the course. This approach will generate more revenue than sponsorships, plus it’s promoting my own product (which I obviously stand behind).

This is the beauty of not only podcasting but the entire internet — there’s more than one way to do anything. Want to have a podcast that doesn’t have a monetization strategy? Awesome, they’re cheap or free to make. Want to have a podcast that makes money through something involving llamas? Do it.

Complicating things (or excuses for why you haven’t started a podcast yet)

“I don’t have time”
Remember my solo podcast? That’s 30 minutes TOTAL for each episode. I don’t have to worry about scheduling guests or reaching out to new people, it’s just me talking. Quick and easy. No show notes even (I write enough words onto screens). It takes less time than it takes me to write a blog post in fact.

“I don’t know anything about podcasting”
That’s why I wrote this article for you! So this excuse is no longer valid.

“I don’t know how to edit, upload, {lack of nerd-ness excuse}”
Hire Julien at podcast edition. Every single nerdy thing you don’t know how to do, he will take care of for you. From mixing/editing to adding your show to iTunes, to artwork, to show notes, to adding the episode to your website. There are other companies and options for this too, but since I use this service and love it, it’s what I recommend.

“I don’t know how to book/interact with guests”
Then don’t. I host two podcasts with no guests. Other podcasts can have guests (I know this because I’m interviewed by other podcasts as a guest at least 10x/month). You can do a solo show. Or a show with a co host. That way there’s no interviewing, scheduling, reaching out, worrying about bad connections, people with shitty (or no) microphones — just you recording. Or do a show with guests, there’s nothing wrong with that either.

“I don’t know what to talk about”
Talk about what you’re interested in. Talk about the products or services you offer that other people pay you for. Talk about the answers to questions people ask you. Talk about what your audience is dying to know more about that helps them. Infuse it with personal stories and your point of view.

“I don’t know how to make money with it”
Starting a podcast simply to make money is a crappy reason to start a podcast. Start a podcast because you want to share your voice with the world. Because it’s worth sharing. Audio is you, up close and personal. The world wants to listen if you make it interesting, engaging and informative.


See what I did there? A little industry slang! You’re already a podcasting expert. To summarize this epically long post, here are the key points:

  1. Invest in a good microphone and always wear headphones if you’re recording with a guest or co host (so their voice doesn’t bleed into your mic).
  2. If you’re not comfortable talking, especially if it’s a solo show, make notes and reference them heavily (you can even do this if you’ve got a co host).
  3. If you want or need music for your intro/outro, there are free samples in Garageband and even stock websites.
  4. Episodes can be 3 minutes or 120 minutes. Make them as long as they need to be.
  5. Host your show on SoundCloud or libsys, which will sync with iTunes.
  6. Let people know about your show/episodes.
  7. Make money with it, if you want to do that, in whatever way works for you and feels right.
  8. Don’t complicate things. Podcasting is fun and easy.

Now get out there and start podcasting.

How to work a project partnership

Working for yourself doesn’t necessarily mean you always got to work alone.
You can collaborate on client work with other freelancers (like writers + web designers or even designers + developers). You can partner up to launch companies or agencies. But today’s topic is another type of partnership. It’s one that I don’t see people writing about enough: project partnerships.

Project partnerships could be anything from launching a course together, hosting a co-branded webinar, creating and launching an application, co-writing a book… you get the idea. You’re not necessarily working together, full-time, forever, but you’ve joined forces (like the Justice League!) for a common goal in a set timeframe.

Just like choosing clients you want (or don’t want) to work with, when you work for yourself, you have the power to pick partners to collaborate with. You’re not just “stuck” with people because they’re also employees of the same company. This is possibly my second favourite reason for working for myself (I’ll write about my favourite reason another time).

Project partnerships mean that you’re partnered up with someone (or several people) to release a single project. It doesn’t mean you’re co-founding a company together or working together indefinitely. It just means for one instance, for a period of time, you’ve got a collaborator.

Over the years, I’ve partnered up on a lot of projects. I’ve launched podcasts, courses and even a few one-off events with other people. And, luckily, I’ve picked up on a few essential ingredients to make each collaboration more than the sum of its collaborators.


I think the key to any project partnership is equal ownership. So if there’s you and one other partner, you both own half. From there you work backwards. Because you’ve each got a 50% share, divide up the work accordingly (there’s always a way to divide the work equally since there’s never a shortage of work to be done). If things aren’t equal, resentment can build or lack of motivation (from the person with less ownership) or even dictatorships (from the person with more ownership). Own each project in a perfect split.

Go Small

I could make an analogy to dating before marriage, but however you slice it, it’s best to test the waters in a small way first with someone. Even if you’ve known the person for ages or you’ve been BFFs since birth—there’s a difference between hanging out and working together. So, what can you launch together that’s smaller and faster to start to see if there’s a good fit? Maybe it’s a webinar about a project you want to take on together. Maybe it’s a landing page to gauge interest before you start work on the product. Maybe it’s writing one chapter together before the entire book. The best way to learn if there’s a good fit with each other is to dive into a small task before the bigger project.

Common goals/expectations

Before money’s involved, make sure you’re on the same page with what you want out of the project—financially, emotionally, time commitment-wise, and what you’re prepared to do (or not do) to make the project work. How would each of you define the success of the project? What metrics would you use to measure it? How much are you each willing to invest of your own money to get it off the ground? Have these sometimes-hard talks before you start in on the work. It’s also good to set expectations for how disagreements will be handled (because you’ll both be equal owners).

Varied strengths

A good reason to partner up on a project is because the other person probably has skills that you don’t have—and the combination of both your skill sets results in some magical sauce. What most people don’t consider is that it’s also important to have various strengths, not just different skills. Skills are abilities that can be cultivated with learning, whereas strengths are personal attributes that are ingrained or learned through life experiences. Outgoingness, action-oriented-ness, attention to detail, people skills, tact—all good examples of how a project collaboration can be better if those strengths shared across two people. That way, regardless of the task during the project, someone’s always able to take the lead. Otherwise, if you both share the same strengths, you’ll be much stronger for some tasks and much weaker in others.

Working for yourself doesn’t necessarily mean you always have to work alone.

That’s it. No long lists or 50-point initial conversation topics to consider. If the partnership is equal, scalable, based on common goals and uses each of your varied strengths—then you’ll be in a great place to start.

Project collaborations can fall apart—sometimes even if you’re best friends before starting. That’s why it’s always important to keep open and honest dialog happening. If something’s not working, the other person should know before you start hating the project (or the other person).

The beauty of working with someone on a project is that you get to pick who you work with. That’s what I love about it, and why I enjoy collaborating so much—we get to make things I’d never be able to create by myself.

Everything you wanted to know about creating a $100k online course

I’m sick of hearing from friends that their online course costs more money to run than the revenue it’s generating. Or that they have to shut their course down because the ongoing fees are much higher than the price they charged members in the first place. Or that they want to create an online course, but have no idea where to start, so they stay stuck in the “oh crap, I’m really overwhelmed” stage.

[PSST: I’ve got updated information on a $300k course, $1m course business and timed course launch.]

There are so many options for membership sites and online course software that seem great, and their pricing models seem decent, but when you run the numbers, it does not work out in your favour.

I don’t have a magic bullet for building online courses, but because I’m cheap (very cheap), I’ve figured out a way to run a course that makes sense financially, regardless of whether 20 people buy or 2,000.

Below is how I run my own course, the Creative Class, which launched on October 15, 2014. There are at least eight billion ways to create an online course, and lots of great options out there, this is just how mine works.

The setup

My course runs on four main pieces of software that all tie together automatically. I get even further into how to set a WordPress course up here.

  1. WordPress — what the site uses.
  2. RestrictContentPro – creates accounts, sends payments to Stripe and shows the right content to the right people based on their account.
  3. Stripe — processes payment and deposits money into my bank account.
  4. MailChimp — the mailing list software I use to communicate with members.
  5. WPComplete — a plugin I built with Zack Gilbert that lets student mark lessons as completed.


Because I build WordPress sites for a living, it was a no-brainer to use it for the website end of my course. Yes, I created a custom theme for my course, but you can use any WordPress theme (free, paid, custom — it doesn’t matter). Make sure the theme’s flow makes sense for how you want people to get interested in and buy the course. The flow also has to work for moving through the course from start to finish. RCP even has a widget so you can add a login/logout button anywhere widgets can go — all without touching code.

Things to consider when picking a WordPress theme for your course:

Other than that, the other software will work with any theme.

Restrict Content Pro

There are currently 334 membership plugins for WordPress (I’m a nerd, so I just checked). Some don’t do what they’re supposed to, leaving your course vulnerable or just not functioning properly. Some are so insanely complicated that I can’t figure them out (and I’ve been working with WordPress plugins from the beta version stage).

Restrict Content Pro links WordPress, MailChimp, and Stripe. How it works: if someone clicks the buy button, they’re shown a little modal window from Stripe that collects the money. Once the payment has gone through (almost instant), a WordPress account is created for that person and they’re added to a MailChimp mailing list. Then they receive an email saying the payment was successful and that they can now log in.

So, all you need to do to use RCP is create a “subscription”, and connect it to your Stripe and MailChimp account. Easy, peasy. From there, you simply edit the pages in WordPress that should only be available to members.


This step, while technically optional, is mandatory in my books. And, you can learn how to setup MailChimp here. RCP doesn’t have to connect to a mailing list, but I can’t think of a single reason you wouldn’t want it to. Here are the benefits to connecting it to a mailing list:

  1. Sending branding emails to your members.
  2. Automating your onboarding process to new members.
  3. Checking in with members (3 days after they sign up, 13 days, 45 days).
  4. Letting members know about upcoming events, special offers to them, up-sells, added value or material.

For my course, I set up an easy automation sequence in MailChimp that does this:

  1. When someone pays, they get a “welcome” email, branded to match the course website. It welcomes them, gives them access, a bit of an introduction to the course and how to use it, as well as a link to get right into the first lesson.
  2. Three days later, they receive an automated email checking in — to see how they’re progressing, if they have questions, and to ask if they want to be listed on the community page.
  3. 45 days later, they get an email to see how they enjoyed the content, what they learned, and what they’ve applied to their own business. If they’ve had wins from applying the material, I ask them to let me know (good for testimonials and case studies).

These three emails go out automatically based on the time someone signs up for the course. I also send out regular email blasts to members whenever I do a monthly Q&A call, too. And, if you use the same mailing list for other things, RCP automatically adds paid members to a different segment, making it easy to only send emails to members (or to send emails to everyone who isn’t a paid member).

The other big reason I use MailChimp for my course is because one of my main marketing tools for the paid course is a free email course. Outside of my main mailing list, the free course drives more revenue than any other source. More on the free course later — in the “Promotion” section.


Though not software, FlyWheel is what I use for hosting. Even though I know how to set up my own server from scratch and I run several other servers, I just wanted a hands-off, reliable hosting company. People pay good money for this course, so I want it to be always fast and always online

The true test came when my course was featured on a high-traffic website and 300+ concurrent people loading the site at the same time… and the site was still fast as hell and didn’t crash. That’s $15/month very well spent.

How payment works

RCP takes care of the money when someone buys the course. RCP connects to Stripe (which is 2.9% + 30c per transaction). Unlike some membership sites (that charge per user, per month), my monthly fees past user acquisition are fairly low since I only pay for a user once at purchase for Stripe fees.

Here’s how RCP works for me:

  1. I create a subscription plan for the course in RCP. No programming required.
  2. There’s a BUY button on the sales page for my course, so if you click it.
  3. Payment is processed through Stripe (which charges 2.9% + 30c) and it’s deposited into your Stripe account automagically.
  4. RCP pushes that person’s email to MailChimp, so when a payment is completed, they start into the automation sequence.
  5. RCP creates a username/password in WordPress for the buyer and gives it to them via email.
  6. The buyer can now log in on the website with their unique username/password and take the course.

On my end, as the creator, I simply get an email saying that there’s been a new member who has signed up. I can then log in (if I want to) to see which coupon they used (because I use coupons to track how someone found out about my course).


Both the sales page and the backend for members was 100% custom designed by me. I created a custom WordPress theme to match the design I came up with. As I mentioned above though, any WordPress theme could work.

The only thing I didn’t design was the icons for each lesson, which were created by the super talented Meg Robichaud.

I kept things simple on purpose — two typefaces (Brandon Grotesque and Freight Text) and two colours (pink and blue). The logo is really just the two C’s of Creative Class, with one flipped. I honestly didn’t spend much time on the logo or design (compared to my client work), because I wanted to focus on the course material. It’s simple enough to function and stylish enough to trust.

How the course moves through the lessons

I spent a lot of time thinking through how the course would function, from new member onboarding, to checking in with members, to running monthly calls. Here’s the basic flow I set up and what the member sees.

  1. The sales page — if someone likes what they see, they click the buy button.
  2. They add an email address and password — their email becomes their username.
  3. Once the transaction completes, several things happen. First, the user is taken to the dashboard, logging them in automatically. The second thing is that they receive both a receipt email from RCP and a branded welcome package automated email from me.
  4. Next, almost all users click to the intro section, which appears at the top left of the dashboard.
  5. Email automation is triggered (to send another email in three days, then again at 45 days).
  6. Users can go through the course at their own pace, as in, the minute they buy, they have access to 100% of the course content. I chose not to do a drip campaign for lessons so people could pace themselves. From feedback, everyone appreciates that. I’ve found that most members want to run through all the content quickly, then circle back on each lesson to work through it with their own business.
  7. Each lesson is broken into the following components:

Outside of the lessons, members can download all materials in a single file or just the written lessons in ebook form. I wanted to give members as many options as possible for learning because I know everyone learns best using different methods.

I also host monthly Q&A calls that are well-attended and well-received (which shows to me that they’re valuable to my members). I tend to spend an hour or more answering members’ questions as best I can. It gives me a chance to get to know who’s taking the course and it gives members a chance for a personal answer to their questions.

These calls also help inform me of what’s missing, what needs to be redone (if it’s not making sense) and what the members are focused on. The software I use to host these calls is I just mark each event as unlisted, so only members can watch.

Fees + Costs

My course costs $300 but there are discounts codes everywhere to get it for $200 (NOTE: there are no longer any discount codes for the course).

Per month, past initial user acquisition, which is $8.10 in fees (including the 2.9% + 30c for Stripe) off an average price of $200, my costs are as follows:

Comparatively, if I used a hosted membership site like Pathwright, I’d be paying $26,556+/year based on their pricing model ($299 for 150 members, plus $3/member/month — not including a 4% transaction fee per user at purchase). They do a lot for you, but their price matches that level and amount of service. Other more cost-effective options for courses include my friend Jason’s Teachery and my friend Justin’s Gumroad to WordPress plugin ProductPressRainmaker also offers membership and payment and costs $95/month (but includes hosting and pretty amazing WP themes, but not Stripe or newsletter costs).

Costs per average user (at $200) acquisition for my course:

If each user pays $200, on average, my costs are $8.10. That means I make $191.90 per user at the onset, then less as months pass and monthly fees rack up for hosting and the newsletter ($120/month to maintain the course). But, if I sell at least two memberships a month, my own costs are covered by double and everything else is revenue or future investment back into the course. Two memberships sold a month is doable and a very low goal to have to hit.

To create the course initially would have cost a lot more if I had to pay for custom design, strategy and development, but as it stands it cost the following to set up:

I spent $7,500 to make my course as perfect a possible, even without having to pay for design or development. I will note that I only spent money on the video, icons, and custom development after sales from the course itself could cover those items. I’m a big fan of starting small and iterating once you get a sense of the needs of your paying members. I even started with seven lessons instead of nine, and added two more a few months later, after I collected feedback from the members.

In theory, you could skip paying for all those items (i.e. free WordPress theme, no custom drawings or editing, record your own video, etc.). You do have to keep in mind that the more professional and trustworthy your course looks and feels, the more likely someone will be to buy it.

Time + commitments

To make an online course, the time required is separated into four buckets: making the course, adding the content, maintaining it, and marketing it.

Making it, for me, took quite a while because I not only wrote and recorded the content, I also designed and programmed it. I didn’t strictly track hours to the minute, but I paid attention to approximately how long each task took:

Which brings me to 230 hours to develop the course and about 18 hours per month to maintain and promote it.


Yeah, yeah, this is what you were most interested in, so I should have put this first…

The course has grossed $129,053 since launch in the fall (to the date I published this — May 16, 2015) with 972 members total. Note that I did not make $100k+ that I get to keep, the course just brought in that much money.

Take into account that $16,000 goes to a partnership I made with a deal website, $7,500 goes to my costs to create, $6,400 goes to payment processing fees, and $720 goes to ongoing fees for six months. That’s almost one third right out of the gates, and doesn’t include taxes (which is around 18% here in Canada for corporations or around $12,000). And, based on time spent working on the course, it has made approximately $240/hr (which is less than I charge for consulting but more than the average price is per hour for projects I work on for clients).


If you’ve read anything I’ve written previous to this, you know how much of a broken record I am when it comes to talking about how a mailing list is the best tool in your arsenal when promoting a digital product.

True to form, my own list (The Sunday Dispatches) is the best place I found to drive membership sales in terms of revenue generated. I wrote one “hard pitch” email about the course, and the rest of the time I wrote either related articles to the course content or simply mentioned the list discount in the footer. Prior to the course, I mentioned it was being built for months before. I even dropped some hints, previews and excerpts from it — so when the hard pitch email showed up in people’s inbox, they already knew about the course.

The second biggest driver of revenue is a free email course I developed that relates to the paid course content called The freelancer’s guide to good jobs & great pay. It’s a short, seven-lesson automated email course that pitches the paid course at the end for a big discount.

This free course was featured on HackerNews (resulting in ~6,000 signups) and ProductHunt (resulting in ~1,400 signups). At first I was like, “OH HECK YES!” Then, when those people received the pitch on the eighth day and sales barely trickled in (four people purchased), I was utterly deflated. I felt like the email course content was awful. But then I realized a) most of those people aren’t freelancers, b) they just wanted to check out a “free something,” c) they wanted to see how someone else was running an email course. So it was great for exposure, but didn’t convert.

Instead of scrapping the free course and it’s content, I took the exact content and tried something different. I started promoting the free course on the paid course page. So as not to compete with the paid offering, it only shows in a modal box when someone gestures to leave the page. In tracking signup source vs. conversion to the paid course, this modal converts at 4–5%. Meaning, for every 30–40 people that sign up for the free course, 2–3 of them buy the paid course at the end. This is great and just goes to show that sometimes it’s not the content that’s the problem, sometimes it’s the audience the content is aimed at.

The third best generator of revenue for the course is a partnership with a deal website. Their audience is huge (almost a million email subscribers), so it was a no-brainer to partner with them to sell this course, months after it had launched. They approached me to partner, and they knew about my course in the first place because of the constant outreach and networking I do with people who have similar audiences.


The final massive piece to my course, and what I attribute a lot of the success the course has to, is the research I did prior to writing and prior to launching it. It wasn’t enough to have an idea and get to work on it, I relied heavily on talking to the audience it applied to.

Pre-creation research

Although I have 17+ years being a freelancer, I wanted to know what made other freelancers tick. What they struggled with, what they wished they could do better, what their perfect career would look like if they had it. I spent a few weeks talking to freelancers on the phone and surveying them via email. I kept my sample group to only freelancers who had spent money on online courses for personal development. I asked them as well, what online courses they had taken and what they found worked the best and the worst with each one.

This research helped inform me, not only in terms of the topics I should cover, but also in how to structure the lessons and format.

Pre-launch research

I had four rounds of beta testers before I felt the course was ready for public consumption. And even then, I launched it to my mailing list a week before I launched it publicly and started outreach and guest posting.

The first group of beta testers (five people) I gave access to the course for free. I had them evaluate it based on some specific criteria I had:

The second group of beta testers (another five people) I gave access to the course for $5, so I could test the payment processing. I asked them the same questions as above, plus one about how the payment process flowed for them.

The third group of beta testers (10 people) I gave access to the course for $50. I had made quite a few changes to how the course worked and wording in the onboarding process, so I wanted to ask them the same questions as the first group to see what changed. Thankfully, all the hangups or wrong things that came up from the first group were fixed.

The fourth group of beta testers (another 10 people) I gave access to the course at $200 (basically, full price). What I wanted to know from them was the perceived value, because people put value on things based on how much they spend on it (so the value of it at $5 is different than at $200):

With the final group of testers, I was not only looking for their feedback, but I was looking at how they framed and worded their feedback. I used what they said to craft the sales page content, using words they used, touching on the most important things they learned from the course and really what pains they had that the course alleviated. I use a similar technique for all my sales pages, because I feel like if I use the language the intended audience uses, they’ll relate to it more. And, if I touch on what’s important to them (not just what I guess is important to them), it converts much better.

The other thing I collected from the last group of testers was testimonials. Any of them that had glowing comments about the course, I asked if I had their permission to share those thoughts as testimonials. That way I could launch the course with real testimonials from real students.


None of what I’ve outlined above is staggeringly new information for anyone who has made or thought of making a course. I wrote this to break down all the small steps you can take when building one, because I know how overwhelming it can be at the start. I also wanted to show that it’s possible to have a course that pays well, gives value and doesn’t cost a ton to make and maintain.

To some, having an affiliate program is necessary. I’ve never bothered with those, simply because if someone’s going to promote my work — they do it because they want to, not because they’re getting paid to. That’s how I promote from others. I don’t have a problem with affiliate programs and know lots of people that make a huge chunk of income from them, it’s just a personal choice on my end not to use them for the products I sell.

Key takeaways:

My final note is to break your course down into the smallest amount of information as possible to start.

First, this is good for your audience because people don’t have much time. Second, this is good for you so you can get your course out the door faster. Initially my course was going to be 30 lessons… which would have taken me a year to write. Instead I pared it down to the nine topics I felt every freelancer needed in order to turn a shitty freelancing career around into something better. I haven’t had a single person complain or ask for a refund because it’s nine lessons instead of 10 (or instead of 30). I’ve actually only had to process three refunds in total.

Even since launch, I’ve learned so much about course-making. This was the first course I built for myself, so I started from scratch. I hope some of the information above helps you avoid the mistakes I made, if you’re thinking of building an online course as well.

My 7-day cycle for generating content that gets read & shared by 30,000+ people/week

I write for and in a lot of places. There’s my mailing list, my website, publications that require exclusive content, and even a few where my writing is regularly syndicated. Typically, although it seems like more, I write one article per week, and I write it with my mailing list in mind.

Because (last time I checked), I’m only one person with no assistant or help, I need for everything I do to be streamlined and quick.

I’ve worked out a fairly straightforward system that lets me focus more on writing and less on how it all works. No step, except for writing and editing, takes more than a few minutes.

And I’ll also note that is what works for me, in my industry, and for the specific topics I write about. Your mileage may vary, so use this as a guideline or something to think about, instead of just trying to blindly replicate it. The principles of it can work, with some critical thought, for anyone in any industry.

Here’s how my system works and the general timeline it follows, unless I’m being paid by a company or publication to write exclusively for them:

Wednesday — Brainstorm

1–2 hours

I look through my scratch pad (I’m constantly adding new ideas, words, articles, and sentences to a scratch pad for article ideas). What stands out? What do I wish I had already written? What have people asked me about lately?

I take one idea that I want to run with and start expanding upon it. Loosely, in point form, I write down every idea that comes to mind. I note any article associated with the idea (for points or counter points). I quickly try to write a rough first draft that is horribly written, probably not even in my writing style or voice, but gets all the points out that I want to make.

Here are 4 examples of ideas on my scratchpad currently:

Thursday — Research & revisions

1–2 hours

Based on every point I made in rough draft, I look for supporting or counter evidence. On blogs, on news websites, on syndication sites for my industry, on Twitter, on

I collect any/all relevant data and pepper my piece with the details that fit into the story. I revise as necessary with the data to help the stories I’ve written, and then I revise again to fit it into my style and voice. This is typically a rewrite from scratch, with a new document on the left side of my screen and the rough draft with research on the right.

Most of my writing follows a simple formula that doesn’t make each article seem similar: story, proof, lesson. The formula makes for a solid piece every time, while the content always varies. Leading with an interesting personalexperience connects my words to the reader. Then I back up the findings with proof: from research, other articles, or even stories from people I know. Finally, I like to sum up the general lesson — beyond myself, beyond the proof, to the bigger picture.

I paste the article into a Google Doc (I write in because it keeps me from playing with formatting/style).

Friday — Proofreading/editing

1 hour

I read the article over once more with fresh eyes in the morning and then share the gDoc with my copyeditor. I get her to edit it for sentence structure and proper format but I also let her know if there are specific things I’d like her to watch out for. Sometimes it’s, “does this make me sound like an asshole?” or “Is this point clearly made?”

Once I get her revisions and comments back, I’ll make changes she suggested and we’ll both give it a final read.

Saturday — Scheduling

15–20 minutes

Now that the article is as perfect as it’s going to be, I format it for my mailing list and my website.

I add any necessary images or illustrations, and I typically add a “PS” for my mailing list that lightly promotes or lets subscribers know what I’ve made or what I’m doing or what I’m promoting.

Here’s an example:
Here’s another example with a visual:

ASIDE: My list is article-focused, not promotion-focused, so I tend to only send out full-on sales emails once or twice a year. The other 51 weeks, I send them these articles for free.

Sunday — Newsletter blast

1 hour replying to newsletter replies

My newsletter goes out at 6 a.m. PST every Sunday with an article. The template I’ve created for these blasts includes a couple key things:

  1. Using MailChimp’s | IFNOT:ARCHIVE_PAGE | tag, my blast shows a message like this to anyone who’s reading the shared email that is not on my list:

“You are reading an article I shared with my mailing list. If you dig it, and I hope you do, you can get articles like this one in your inbox every Sunday by signing up here.”

Here’s what it looks like in MailChimp

This message goes at the top and bottom of every email. Subscribers don’t see the message but if they share the article by forwarding it or sharing it on social media, others do see those messages.

  1. In the footer, I have a note for subscribers that says “Love this newsletter? Send your friends or followers to this page” which links to my mailing list’s landing page.
Simple text — clear links.

If you don’t have a landing page for your newsletter, stop reading and make one right now — use mine as a template for structure.

Show the value of it, provide social proof, and give insight into what they can expect.

Here’s my newsletter landing page:

  1. MailChimp also lets you tweet or share on Facebook each blast as it’s sent out. Doing this shares the archive page (with the note from #1 about signing up). I also share the archive page a few more times each Sunday on social media, in case people missed the first update.
When you’re setting up a campaign, use this!

Monday — Publish & syndication

30 minutes

For the first 24 hours, readers only get access to the article via my mailing list, or through a social share of the email blast’s archive (which has the sign up messages at the top and bottom). After that first 24 hours, I publish it on my own website.

People who subscribe to the RSS feed get notice, and I also promote it on social media using text from the article. So if I shared “Call me a Quitter, just ask Vince Lombardi —” on Sunday, on Monday I’d say something like “A quitter never wins and a winner never quits is total BS —”

I also syndicate my writing on a few publications (The Huffington Post and The Next Web to name two), so I email my editor at each place a quick link to the gDoc to see if they want to run it on their sites. Most of the time, if it’s a good fit, they do. Promotion for the article on their sites happens through their social media channels, so I don’t worry about it other than checking to reply to comments, if there are any.

Here’s the same article in three different places (not including my newsletter). This helps it reach a larger audience (because readers of Inc. may not read my site or The Next Web, and vice versa).

The same article in 3 places.

If you’re just starting out, you don’t have to aim for massive publications. Try local media outlets, smaller sites that accept guest posts, or even putting your articles (if appropriate, of course) on related communities or message boards, LinkedIn blogs, Svbtle, or anywhere else you know people interested in the topics you write about already spend their time.

How meta!

I also publish every article I write on, which is free to join and easy to use. I always end each article, in their largest font, with “This article first appeared on my Sunday Dispatches.”Sometimes the article gets picked up by the Medium editorial team and they tweet it out to 100,000s of people or share it with their newsletter. On average I get 1,000–2,000 views from Medium, and if the article goes into their social media or newsletter promotion, it goes up to 10,000–40,000+ views.

Tuesday — Outreach & aggregation

15 minutes

Because my writing is mostly specific to freelancers and creatives, I share relevant articles that I write with industry news aggregators. It differs for every industry, and I’m lucky because in the web design/freelancer sphere there are a lot of link aggregator sites.

1. — I post my articles there, and change any long titles to be much shorter.

  1. — because I’m a web designer, and my articles apply to designers, I share here. Once posted on this site, articles go to their Twitter feed (which has thousands of followers).
  2. HackerNews — if the article I wrote fits their audience, I post it here as well. I don’t tend to get much traction on this site, but a few articles I’ve written have resulted in 1,000s of new readers, so it’s worth it on the off chance it pays off.

4. — if my article is focused on marketing, I share it here. 5. — if my article fits HackerNews, it also fits here, so I post it.

6. Reddit — if I can quickly find a subreddit that my article fits in, I’ll post it. Because my link karma isn’t very high, I don’t bother if I need to spend more than a few minutes figuring out where the post should go.

The above sites are listed in order of how many traffic each one sends my way.

It’s important to note that I don’t just share my own articles on the above sites, because that would make me a jackass. Throughout the week I share many articles on each site that I think people should read. Sometimes they’re articles from my research or scratch pad, and sometimes they’re just articles I see on Twitter.

Posting articles to the above six places takes no more than five minutes total.

I then spend a bit of time with outreach by contacting anyone or any company I mentioned in the article (if any) to let them know about the article. This is either a 1–2 sentence email or a quick Twitter DM. I don’t accept payment or bribes for mentioning anyone in my articles. I talk about people and companies that I think are great, and help prove whatever point I’m trying to make.

I also share the article once or twice more on social media, using different wording to promote it.

Finally, I either personally thank or favourite each tweet about my article that others share. Sometimes it’s 100s an hour, so I can’t thank everyone, but I mentally thank people as I favourite their tweets, because they’re sharing something I wrote and I appreciate it.

I don’t use Facebook or LinkedIn or Pinterest. I don’t share articles on Instagram. I primarily use Twitter and occasionally Google+ because I don’t want to spread myself too thin.That’s it!

That’s my 7-day cycle for creating content every week that gets read and shared at least 30,000 times total and grows my mailing list by hundreds of subscribers per week, on average.

In all, approximately six hours of work for each article. But the payoff is hundreds of books sold and hundreds of new subscribers per week.

I could potentially write an article per day and just pump them out, but I’d rather focus on quality than quantity. By putting days instead of hours into each piece, I can really get across the point I’m trying to make with a mix of personal stories, research, and interesting examples.

Yes, it’s a lot of work, but I’ve been doing this for over a year, so it’s baked into my routine. I also see the payoff when I release a new book or product with greater and greater sales from having a larger audience.

Plus — most importantly — the reason I do all of the above is because I like to share things I know and things that I’ve learned. If that didn’t matter to me, none of the above would be worth it.

Win at SEO

A few people have asked why I didn’t cover SEO (Search Engine Optimization) in my books and the reason is simple—because I couldn’t give a rats ass about it. Obviously I like the traffic I get (and think I get a decent amount, especially from search engines) but I’ve always worried more about what I write than being #1 when people search for “awesome”.

So many clients ask how to get their website to show up first in searches, and the honest answer is that there’s no guaranteed way to do it. How Google actually picks what shows up first and what shows up five pages deep is not entirely known to the public, and any time someone figures out a way to “game the system” the system is quickly changed (Google, like me, doesn’t tolerate bullshit).

Instead of SEO, focus on your content.

Good content becomes good SEO. So if you spend time on the first part, the second part will happen naturally.

The Sunday Dispatches newsletter, weekly articles since 2012—written by Paul Jarvis and read by 30k+ subscribers.