Don't Build a Custom Online Course Website Until You Read This!
Tuesday, Aug 6, 2024 by Anthony Gore
Let's say you're a web developer and you've got a new client that wants to build an online course site.
They want to customize it and integrate it and maybe integrate it with their other digital assets which is why they've bought you on board instead of simply installing an LMS.
So what's your approach? There are plenty of options, including:
- Build it completely from scratch
- Integrate with a course platform e.g. Teachable
- Use an LMS plugin e.g. LearnDash
- Use an online course template or starter kit e.g. Statamic Courses
I've personally used each approach and have discovered that each has pros and cons regarding how easy it is to build with, the level of customization available, and the features provided.
I've also wasted way too much time on the wrong approach, so I recommend you think this through before committing!
In this article, we'll go through each approach and help you decide what's best for you and your client.
Option 1: Build from scratch
What is an online course site, anyway? Isn't it just a website with some basic features like tracking student progress? So how hard could it be to build it yourself?
Hard! Because, actually, the above analogy is flawed. An online course site is more like a CMS than a website, and you wouldn't want to build one of those from scratch without good reason.
Even for the most basic course, you'll need auth, content management, interactive UI features, payment integration, etc. It's not a trivial task to provide all that from scratch.
If your client has a big budget and really needs a highly customized experience, this can work. Otherwise, it's probably a bad idea.
Pros
- Maximum flexibility and customization
Cons
- Loads of upfront work and maintenance
Option 2: Integrate with an online platform
There are already feature-rich course platforms out there like Teachable and Thinkific. These have everything you would want in a course already built for you.
So what if you simply customized one of these? Teachable, for example, offers the following features for developer customization:
- API access
- Custom HTML and CSS blocks
- SSO
- Webhooks
While that all sounds good, I found this approach for creating a custom site to be a mistake as well.
Firstly, these course platforms are very expensive. For access to the Teachable API, for example, you need to be on one of Teachable's Pro plans which start at $119 a month.
Secondly, the customization options are both limited and difficult to work with. To edit a page template on Teachable, for example, you have to add custom HTML and CSS blocks through their UI which is very cumbersome.
I would only choose this path if your client is already on the platform and would prefer to stay. Or if only very basic customization is needed.
Pros
- Great online course features out-of-the-box
Cons
- Expensive
- Difficult to customize
- Cloud data
Option 3: LMS plugin e.g. LearnDash
Another option is to use an LMS plugin like LearnDash. This can be added to WordPress and allows you to customize some of the features.
The advantage, much like using a course platform, is that it is feature-rich. You will get everything you need for a great online course right out of the box.
You also get access to the WordPress ecosystem allowing you to use an array of themes and plugins to customize the course experience.
That said, LearnDash and similar plugins are still pre-built solutions and architected primarily as course builders. So customization is still difficult and limited.
If all you need to do is theme your course site, this can be a good option. While it's easier to customize than, say, Teachable, don't expect much flexibility.
Pros
- Feature-rich, out of the box
- Easier to customize and more affordable than Teachable
Cons
- Developer unfriendly
Option 4: online course template or starter kit
An option that sits in the middle of "building from scratch" and "customizing an LMS" is to use an online course template or starter kit.
For example, you could use Laravel LMS or Statamic Courses (I'm the author of the latter one).
Both of these provide a code base with boilerplate code for an online course that you can easily customize.
This is a strong option as it's highly customizable - you can add any feature you want - and puts developers first - you're working with the code and developer tooling you love, not some clumsy UI-based page builder.
But unlike building from scratch, you won't be reinventing the wheel. All of the basic course features are already there so you won't waste time solving problems other devs have already solved.
The biggest downside is that it these starter kits are not as feature-rich as Teachable or LearnDash and there will inevitably be features you'll have to build yourself.
Pros
- Highly customizable
- Great developer experience
- Affordable
Cons
- Only essential features provided out of the box
Recommendation: Statamic Courses Starter Kit
While you will obviously have unique requirements for every project, I think the best general solution for creating a customizable online course site is Statamic Courses.
As the author of this, I may be biased. But the whole reason I created it is because I'd tried all the above options in past projects and never found any of them satisfactory.
This starter kit is built on top of Statamic which is a flexible and extendable content management solution based on Laravel.
It offers all the features you'd need for a simple online course:
- A CMS for managing content
- Customizable templates for completely unique design and UX
- Configurable enrollment flow so you can have free or paid courses, memberships, etc
- The flexibility to add any other feature you want
You can learn more about Statamic Courses from the documentation.