LearnBase
Working software, in active developmentYour academy runs on a notebook and fifteen WhatsApp groups. It does not have to.
A multi-tenant learning management platform for teaching academies — built first for classical music and dance schools, and designed so the same core serves any tutoring or coaching vertical.
Why academies needed their own platform
A dance class is not a chemistry batch. Mainstream LMS products are built around semesters, cohorts moving in lockstep, quizzes and content delivery. An arts academy works nothing like that.
Students progress individually, not as a year group
A course is a ladder of levels and topics — an adavu series, a set of geethams, a teentaal kaida — and each student sits at their own rung. Progress is a position, not a grade.
The guru is the unit of capacity, not the classroom
Scheduling respects which mentor is free, what they teach and who they are assigned to, reading mentor availability rather than asking an admin to remember it.
Money is per enrolment, not per term
Every enrolment carries its own price and status, fees arrive irregularly, and the guru who taught the class needs paying. Invoicing, wallets and payouts are part of the domain, not a bolt-on.
Attendance is the record that matters
For a class of four, the register is the progress report. Attendance belongs to the student history, not a notebook.
What it replaces
An academy with sixty students spends about a day a week on administration, and almost none of it is teaching. A WhatsApp group for every batch. A roster per class. Fees tracked in a notebook and reconciled from memory. The meeting link forwarded again because someone missed it.
LearnBase digitises that whole operating layer. Each academy gets its own tenant, its own courses and levels, its own gurus and students, and its own fee arrangements — scheduled, invoiced and recorded in one system, with calendar invitations going out the moment a class is booked.
Why the architecture matters here
Marketplace platforms take a share of what an academy earns. LearnBase is software the academy runs, with published pricing and no cut of teaching income — which means it has to be cheap to operate and safe to extend.
That is why it is a modular monolith rather than either a single tangle or a microservice estate: one thing to deploy, eight parts that can be pulled apart later if any one of them needs to scale on its own.
What it does
Multi-tenant academy onboarding
An academy registers itself and gets its own isolated tenant and first admin account in a single guided flow.
Course, level and topic structure
A curriculum as a real hierarchy — courses containing levels containing topics, with teaching assets attached where they belong.
Scheduling with calendar invitations
Schedule a session against a course, mentor and roster in seconds. Invitations reach real calendars, so the meeting link stops being a message someone has to find again.
Attendance register
Recorded against the session roster and kept as part of each student permanent record.
Invoicing and payments
Generate invoices, take payments and reconcile automatically from the payment gateway webhook rather than by hand.
Student wallets
Credit and debit a balance with full transaction history, so advance payments and adjustments are traceable instead of remembered.
Mentor payouts
Track what each guru is owed for the classes they actually taught.
Per-academy data isolation
Every request is checked to be operating inside its own organisation, so one academy can never read another data.
How it is built
- Eight modules, eight database schemas, one deployable. Organization, Identity, Catalog, Learning, UsersDomain, Subscriptions, Payments and Billing each own their entities, migrations and service logic, and no module references another module data layer.
- Cross-module work goes through orchestration: thirty-four named workflows compose modules together, so every cross-module read has a name and a home.
- Cross-schema references carry no physical foreign key, deliberately — each module schema stays independently extractable into its own database later, with existence validated by the orchestration layer.
- Fail-closed authorization: the default policy denies, so a new endpoint is protected unless it explicitly opts out. A forgotten attribute cannot silently expose data.
- Domain logic is encapsulated — private setters, static factory methods, and outcomes returned through a Result/Error type rather than exceptions, so a failure is a value the caller must handle.
Who it is for
- Classical music and dance academies — Carnatic vocal, Bharatanatyam, Tabla, Kathak, veena
- Independent gurus running structured, multi-level teaching
- Multi-branch schools needing one system with clean data separation
- Coaching and tutoring centres whose students progress individually
- Parents who want to see enrolment, attendance and fee status without asking
Built by the team that would work on yours
Same stack, same people, same engineering standards. Tell us what you are building.