All articlesEdTech

Build vs buy an LMS: a practitioner's guide for training institutes

Every training institute hits this question eventually. Build vs buy LMS is the search you type after the third platform demo leaves you cold. We build custom platforms for a living: Bright Future, a B2B e-learning platform for universities and training programs in Kuwait, and Ilmversity, a school LMS in Pakistan. Even so, our first answer is usually buy.

The minority that should build is identifiable in advance. The tipping points are predictable: installment billing, local payment rails, video piracy, multi-branch permissions, and regional compliance. This post walks through each one, then lays out the real three-year cost curve of both paths and a checklist you can put in front of your team this week.

Buy first: when off-the-shelf wins

If your courses are videos, quizzes, and certificates sold one at a time by card, buy. Teachable, Thinkific, or LearnWorlds will have you selling in a week for under 200 dollars a month. Moodle is free, self-hosted, and deeper than most people realize: SCORM, question banks, gradebooks, and a plugin ecosystem that has been hardened over twenty years.

Buying also buys you focus. A new institute's real risks are enrollment and course quality, not software. Spending six months on a custom platform before you have proven demand is the most expensive mistake in this space. We say that as a studio whose business is building platforms.

Where the build vs buy LMS decision actually tips

The decision tips when your revenue model or your market stops matching the platform's assumptions. Off-the-shelf tools assume one-time card payments, one admin hierarchy, and viewers who do not share accounts. Training institutes in our markets break all three assumptions at once, which is why the workaround spreadsheet appears within the first term.

Watch for these signals: finance staff reconciling payments outside the LMS, students paying at the front desk because the checkout does not take local cards, instructors emailing recordings because the video player frustrates everyone, and branch managers who all share one admin login. Each workaround is a requirement your platform cannot express. Three or more, and custom starts to pay for itself.

Installment billing and local payments, the usual breaking point

When we built Bright Future, a B2B e-learning platform for universities and training programs in Kuwait, billing was the hard part, not the courses. Students pay semester fees in installments, sometimes with a down payment, sometimes with a discount an admin approved for one student only. Payments run through MyFatoorah because that is how Kuwait actually pays, KNET debit cards included.

No hosted LMS handles that combination. Teachable's payment plans are fixed schedules on international cards. Moodle's commerce plugins assume Stripe or PayPal, which many Gulf students cannot use. Bolting a local gateway onto a foreign platform means webhooks, sync jobs, and a second system of record for money. That integration alone can cost more than a purpose-built billing module.

There is a middle path worth naming. Keep Moodle or Teachable for content, and build only the billing and enrollment layer around it. It works when the content side is genuinely fine. It fails when access control needs to react to payments, for example locking a chapter the day an installment goes overdue, because now two systems must agree in real time.

Secure video and the account-sharing problem

If your content is your product, account sharing is direct revenue loss. One login shared across a WhatsApp group of twelve students is eleven unpaid seats. Consumer platforms mostly ignore this because their sellers price for it. An institute charging 300 dinars per course cannot.

On Bright Future we serve video as secure HLS streams through a CDN, with signed URLs so a copied link dies quickly, and we cap the number of devices per student account. None of this is exotic engineering, but it has to live inside the auth layer, the apps, and the player at once. That is why plugins rarely do it well.

Mobile matters here too. Students in Kuwait watch on phones, so Bright Future ships iOS and Android apps with the same device and stream protections built in. A browser-only platform leaves your most-used surface unprotected, and a webview wrapper around someone else's player usually breaks either playback or security.

Multi-branch roles and regional compliance

Building Ilmversity, a school LMS in Pakistan, taught us how quickly role models outgrow off-the-shelf assumptions. A school network needs owners, campus heads, coordinators, teachers, parents, and students, each seeing different slices of the same data. Generic LMS roles flatten that into admin, teacher, student, and everyone shares passwords to compensate.

Compliance is quieter but just as binding. Kuwait clients ask where student data lives. Pakistani institutions increasingly need tax-compliant invoicing. Arabic and Urdu interfaces need proper right-to-left handling, not a translation file taped over an English layout. On a bought platform you inherit whatever the vendor decided. On a custom build these are requirements like any other.

The real cost curve over three years

Buy looks like this: 100 to 500 dollars monthly for a hosted platform, or 200 to 600 monthly to host and maintain Moodle properly. Add transaction fees of 2 to 5 percent on plans that take payments, plus setup and theming, typically 2,000 to 10,000 dollars once. Three-year total for a mid-sized institute: roughly 15,000 to 40,000 dollars, spread evenly.

Build is front-loaded. A serious custom LMS with billing, secure video, and mobile apps lands between 40,000 and 120,000 dollars depending on scope and team location, then 15 to 20 percent of that per year for hosting, upkeep, and small features. Three-year total: perhaps 70,000 to 180,000 dollars. On cost alone, buy wins for almost everyone.

The curve flips on revenue, not cost. If installment billing recovers fees you currently lose, if device limits convert shared accounts into paid seats, if branch reporting lets you open a third location, the build pays back from the top line. A single billing feature can carry the business case for an entire platform. If you cannot name the revenue mechanism, you do not need the build.

A decision checklist for institute directors

Score yourself on six questions. Do more than a third of your students pay in installments or cash? Does your local payment method work on every platform you shortlisted? Is recorded video your core paid product? Do you run multiple branches with separate staff? Do local rules dictate invoicing or data residency? Is this funded from proven revenue rather than hope?

Zero to two yes answers: buy, and revisit in a year. Three or four: buy now, but pick a platform with a real API so your billing workarounds can become integrations. Five or six: get a build scoped, because you will pay the custom price either way, in staff hours and lost fees instead of invoices.

If you land in the build column, start with the one module that hurts most, usually billing, and keep the rest on your current platform until the numbers prove out. That is how we would scope it for you too. Our edtech work covers what these systems look like in production, and talking to us costs nothing but an hour.

Common questions

How much does custom LMS development cost?
For a training institute, expect 40,000 to 120,000 US dollars for a first release covering enrollment, billing, secure video, and reporting, with mobile apps at the top of that range. Team location moves the number a lot: our engineering team is in Lahore, and Lahore-based builds typically land well below US agency prices for the same scope. Budget another 15 to 20 percent per year for hosting, maintenance, and small improvements. Anyone quoting a precise figure before writing a requirements document is guessing. A wide range is the honest answer.
Can we start with Moodle and move to a custom LMS later?
Yes, and it is often the right sequence. Moodle proves your course catalog and enrollment demand at almost no cost. The migration itself is manageable: courses, users, and completion records export cleanly enough. What does not migrate is payment history in workaround spreadsheets, so start keeping billing data structured from day one, even if the tool is basic. The one caution is timing. Institutes usually switch two years after the pain starts, because the workarounds feel free while staff absorb them. Put a yearly review date on the calendar and reassess against real numbers.
How do you actually stop students from sharing LMS accounts?
Layered controls, none perfect alone. Stream video over HLS with short-lived signed URLs so shared links expire. Cap concurrent devices per account and make students release a device before adding another. Watermark the player with the student's name or phone number, which quietly kills screen-recorded copies posted to groups. On Bright Future we enforce device limits per institution, since each university sets its own tolerance. Expect pushback in week one and near silence after, because most sharing is casual rather than commercial. Full prevention is impossible; making sharing more annoying than paying is very achievable.
How long does a custom LMS take to build?
Plan for four to seven months to a first production release: six to eight weeks of scoping and design, three to four months of build, and a month of pilot with one real cohort before full rollout. Mobile apps add six to ten weeks, partly because app store review cycles are outside anyone's control. The schedule killer is not engineering, it is decisions. Fee structures, refund rules, and role permissions each need an owner on your side who can answer within days. Institutes that assign one decision maker with authority ship months earlier than committees.

Planning something like this?

Talk it through with the people who have built it before. We reply within one business day.