Creating my own course platform from scratch
Learn about the apps, services, and tools I used to create my own custom online course for digital products.
It’s been several weeks since I officially launched the Liftoff Creator Course and the results have been incredibly rewarding. The course is buzzing along, creators are starting to launch their own products, and I’m meeting tons of talented folks who are excited about the future of the creator economy.
If you aren’t familiar with my digital product course, I encourage you to check out the landing page to learn more! I created the Liftoff course to teach you step-by-step how to pinpoint your expertise and turn it into digital products like courses, ebooks, memberships, digital goods, design assets, and templates that earn recurring revenue and help you grow an audience.
Since the launch, I’ve been getting a lot of questions about the site itself and how I built it. Because I didn’t use a course platform, and instead opted to design and built it from the ground up (crazy, right?), I had to compile some affordable, yet powerful, technologies to make this thing work how I envisioned it. Here’s how I did it.
Why not use a course platform instead?
There are tons of really nice course platforms like Podia out there, and I’m sure you could run a very successful course on there. But I’m a perfectionist, and a tinkerer, and a technologist, and a creator.
I had a very specific vision of how I wanted the Liftoff site to work, and how I wanted users to experience the course itself. In an increasingly busy ecosystem of courses, I also wanted a website that made people go “Wow, this is not just another course.” Unfortunately, I would have never gotten there with an out-of-the-box platform. I needed more control.
Most importantly, I love simply love creating products like this and bringing them to life with design, code, photos, videos, and marketing. It’s what I do. Working with all of these different mediums is also a good way for me to stay in tune with the new code, design, and web tools out there.
Course platforms can get in the way of the content
Something I’ve noticed with many of the course platforms out there is that the course features tend to get in the way of the course content. Progress checkers, end-of-chapter quizzes, gamification, assignments — all of these things can be a burden on the person taking the course. They all have the potential of derailing the reader.
Maybe these things are actually valuable to learning certain types of material, but I didn’t want taking the course to feel like a task, so I kept the experience focused around the content and chucked everything else out the window. Once you’ve logged into the course, you are free to explore the chapters at your own pace, in any order, and without intervention from me.
WordPress as the base
Even with all of the new CMS platforms out there, I still defer to WordPress for sites that are going to be even remotely complicated. It’s hard to beat all the technology you get baked in:
- Content management
- User management
- Unlimited extensibility and integrations
- Over a decade of docs and educational content
It’s insanely flexible and can be bent and shaped into virtually anything you want. It also helps that I have over a decade of experience building WordPress sites and products, so I can build very quickly with it.
To manage the content, I used a custom post type to handle the chapters of the course. I also created a front-end dashboard where users can access the chapters, audiobook, and all of the other course extras.
The site is hosted at SpinupWP, where you can spin up a wicked fast WordPress server in minutes. I really like SpinupWP because, as an advanced WordPress developer, it bridges the gap between self-hosting and managed hosting. (If you’re looking for a managed WordPress host, check out WP Engine.) It lets me have all the flexibility I need to customize the server as needed, but handles a lot of the heavy lifting with security updates and overall server management.
I’ve also leaned on a few WordPress plugins to add some more advanced features to the site:
- All In One SEO – SEO enhancements, sitemaps, and more
- Autoptimize – Optimize delivery of CSS, JS, images, fonts and more
- Download Monitor – Manage downloads and lead magnets
- Fathom Analytics – A simple, GDPR-compliant alternative to Google Analytics
- WP Forms – Collect email subscribers, contact forms, etc.
Payments and asset delivery
I used Lemon Squeezy to accept payments on the site and deliver the course extras to customers. If you follow me on Twitter, you’ve probably seen me singing the praises of Lemon Squeezy before. It’s one of my favorite new services out there.
With Lemon Squeezy, you can accept payments with a super-quick, mobile-friendly checkout without worrying about payment gateways, taxes, and file delivery. As the merchant of record, they handle all of the complicated stuff like taxes and let you focus on creating and selling digital goods, subscriptions, etc.
With their API, it’s super easy to integrate into your site or app, but you can also use their built-in store if you want to keep it super simple.
Using the webhooks feature in Lemon Squeezy, I wired up WordPress to detect when a purchase was made to create an account for the customer. The customer is sent their credentials and they log in just like they would on any other WordPress site. It’s a really seamless experience!
The final bit of notable tech on the Liftoff site is email marketing, which is powered by ConvertKit. Although Lemon Squeezy has recently launched their beta email marketing features, I didn’t have this available when launching, so I had to find an alternative. ConvertKit has been a great choice so far. Their visual automations and overall well-designed experience have been super easy to work with and integrate into the site.
On the landing page, I’m using a ConvertKit form to collect email subscribers who download the Liftoff lead magnet. Using Zapier, I was able to connect Lemon Squeezy and ConvertKit to send customer purchase details to ConvertKit for more complete customer personas and personalized email marketing.
Tying everything together
Implementing all of these different technologies is one thing, but making sure they all work harmoniously can also be a challenge, but it pays dividends.
As I teach in the Liftoff course, automating your operation is going to be critical to your success with any digital business. The more time you spend babysitting every little thing and doing manual tasks, the less time you’re spending on high value priorities like ideation, growth, and creating new stuff. It’s super important to spend time up front getting all of your apps and services talking to each other and working for you so you can focus on more important things.
Build it, own it
Don’t get me wrong, this was a lot of work. I realize that building something like this from scratch is not something that everyone can or should do.
However, the benefit is that I have a platform I can iterate, grow, scale, and replicate for my future projects. It’s mine, inside and out. In an ecosystem where apps and services come and go, change prices on a dime, remove features, and close up APIs, owning as much of your platform as possible may become increasingly more appealing and sustainable in the long run.
The power of people
I wouldn’t have been able to pull this thing off if not for a few extra pair of hands along the way. I want to give special thanks to Phil Johnston, Patrick Posner, Gilbert Pellegrom and the Make Lemonade crew, Sally Kerrigan, Adrian Petriw, Chris Lema, and all the folks who agreed to be interviewed for the course. 🙌
I am very purposeful about trying to spread good vibes, kindness, and just plain helpfulness to those around me. I love putting my skillset to work for someone who can really benefit from it. Helping people level up is an incredible feeling!
It’s also a great privilege to have that good karma come back your way when you need it. That’s the power of a quality network. You don’t need to be professionally connected to a ton of people, just a handful of really good ones.