Typical project
Custom online course platform: when it is worth it and what it includes
How we build a course platform with video lessons, tests, progress tracking, certificates, payments and time-limited access, and how we compare it honestly with an existing LMS or a WordPress plugin.
Before commissioning an online course platform, it is worth asking an awkward question: do you really need one built from scratch? For many schools, trainers and training companies, the honest answer is no, at least to begin with. There are ready-made systems that cover lessons, tests and payments at far lower cost.
Custom development has its place when the way you teach or sell does not fit their mould: cohorts with a start date and a mentor, access bought by companies for their employees, exams with rules of their own, a link to your internal systems.
Plugin, existing LMS or building your own
LMS stands for “learning management system”, that is, software that keeps track of courses, learners and results. Broadly, you have four routes.
If you are in two minds, start with the simpler option. Content can be moved later; what you do not get back is the time spent on features learners are not asking for.
- WordPress plugin: an LMS module added to your website. It is enough when you sell a few recorded courses, with simple tests and card payment.
- Standalone LMS: for example Moodle, an open-source system suited to large catalogues, grades, groups and SCORM packages (a standard format for packaging courses, often required by companies).
- Hosted subscription service: you get everything set up for you. Good for a trainer working alone, less so when you want full control over the data.
- Building your own: worth it when your rules for access, assessment or sales cannot be reproduced other than by patching things together.
What goes into a custom-built online course platform
The skeleton is the same everywhere: course, modules, lessons. The difference lies in the rules. Together we settle whether the lessons all open at once or one after another, whether a test blocks further progress and what, exactly, “course completed” means.
Trainers have a panel from which they upload their own materials and see at which lesson most learners drop out.
- Lessons: video, text, downloadable files, assignments uploaded by the learner.
- Tests: one or more correct answers, pass mark, number of attempts, shuffled order.
- Progress: each learner sees where they left off, and you see the picture by course and by cohort.
- Certificates: a PDF generated automatically when the conditions are met, with a code that can be verified on the website.
- Company accounts: an employer buys places and keeps track of its people.
Why video lessons do not live on the website’s server
A video file placed directly on the website’s hosting is slow to start, eats up the server’s resources and looks poor on a weak connection. A specialist video service (Vimeo, Bunny Stream, Cloudflare Stream and others like them) converts each lesson into several quality levels and delivers it adaptively: the player picks the resolution itself according to the connection speed.
The video service also helps with protection. Depending on the service and the plan chosen, playback can be restricted to your domain, and the lesson’s address can be made valid for a short time, only for someone who is logged in. The limit should be stated openly: nothing prevents a determined person from filming their screen.
Payments, time-limited access and invoices
Payment goes through a payment processor, which takes the card details on its own pages; your platform neither sees nor stores them. You can sell as a one-off payment, as a subscription with automatic renewal or in bundles. Access can be unlimited, for a period counted from the purchase, or tied to a cohort with a start and an end date.
When access expires, the learner keeps their account and certificates, but the lessons close. The invoice is issued through the link to your invoicing software; your tax obligations towards individuals, companies or learners in other countries are something to check with your accountant.
The certificate generated by the platform attests that the person has completed the course. For officially recognised diplomas, you find out the conditions from the institution that authorises training programmes.
From the first course uploaded to opening enrolment
We work with a real course, not with filler text, because only real content shows where the structure creaks.
We write the custom code in PHP, with Laravel, and connect payments, the video service and emails through their programming interfaces (APIs). After launch, we track how many of those who buy reach the last lesson.
- Clarification: who you sell to, how you teach, what rules you have for access and assessment.
- Choice: plugin, existing LMS or building your own, with the reasons set down in writing.
- Structure and design: the course page, the lesson page, the learner’s panel and the trainer’s.
- Test run: a small group goes through the course from start to finish, including payment and the certificate.
- Launch: moving existing learners across, if applicable, and starting enrolment.
Frequently asked questions
Can I start with a plugin and move to a platform of my own later?
Yes, and it is often the healthiest route. Lessons, tests and the list of learners can generally be moved, with an effort that depends on how cleanly the data has been kept and on what the plugin lets you export.
What does the cost of a custom platform depend on?
First of all on the rules: how many types of access and payment you have, how complex the tests are, whether there are company accounts. On top come monthly costs that are not in our hands: the video service, the payment processor, hosting.
Can live lessons be held too?
Yes, by connecting the platform to a video conferencing service: the learner sees the date, the joining link and, afterwards, the recording in their account. The broadcast itself remains the job of that service.
This is a typical project description: it shows how we usually approach this kind of work and does not present a project carried out for a particular client. Every real project starts from your company’s situation, and the stages, timescales and price are agreed after the initial discussion.