Multi-Tenant Learning Management System
A SaaS LMS that lets each institute brand, configure, and run their own classrooms — without forking the codebase.
Technology Stack
Project Overview
I joined the project as the second engineer with the opportunity to take an existing single-tenant LMS and rebuild it as a true multi-tenant SaaS. The goal was simple — let any institute, training company, or coaching academy run their own classrooms on shared infrastructure, without forking code or duplicating ops.
The challenge was less about features and more about isolation, customisation, and onboarding. Every tenant needed their own brand, domain, billing, and data — but the platform team needed exactly one codebase to maintain.
Objectives
The primary goals of the LMS rebuild were:
- Design a tenancy model that scales to hundreds of institutes on shared infrastructure.
- Reduce onboarding from a week of setup to a self-serve three-field form.
- Provide deep theming and configuration without giving any tenant access to code.
- Keep the API surface boring and predictable so feature work doesn't slow down over time.
Domain and Industry Context
Education-tech is full of platforms that look the same on the outside and behave very differently on the inside. Some institutes care about live classes; some care about assignments; some care almost entirely about attendance and report cards for parents.
We needed a model where each of those flavours felt like a first-class product — same engine, different surfaces. The shape of the data, the role of the tenant admin, and the rituals of the school calendar all shaped the design more than any framework choice did.
Features
Tenant Onboarding
A self-serve flow where a new institute picks a subdomain, uploads a logo, sets a brand colour, and is in their own workspace within minutes — fully provisioned, zero ops involvement.
Course Authoring & Live Classes
A clean drag-and-drop course authoring tool, paired with a stable live-class layer that handles attendance, breakout rooms, and recording — all surfaced through the same student dashboard.
Reporting & Analytics
Daily, weekly, and term-level reports on attendance, assignments, performance, and engagement — exportable to PDF, schedulable over email, and drillable down to a single student.
Multi-Tenant Billing
Stripe-backed billing with per-tenant plans, prorated upgrades, and proper invoicing — the platform team sees one consolidated revenue dashboard, while each institute sees only their own.
Outcome
The platform now hosts dozens of institutes on a single deployment. New tenants self-serve onboarding in under five minutes, brand their workspace fully, and spin up their first cohort the same day.
Operationally, the platform team went from spending most of a week per institute to spending almost nothing — onboarding is fully automated and incidents are scoped to a single tenant by design.
Revenue follows usage cleanly, billing is reconciled automatically, and feature work no longer slows down as the number of institutes grows.
Conclusion
The hardest part of building a multi-tenant SaaS isn't the features — it's the discipline. Every shortcut you take in tenancy, isolation, or configuration shows up months later as an outage or a migration nightmare.
By keeping the data model boring and the API surface narrow, the system has stayed easy to evolve. Onboarding stays fast, customer trust stays high, and the team can ship features instead of fighting fires.