Building a Multi-Tenant School Platform From Scratch
A production-grade multi-tenant SaaS that runs entire schools on isolated data, built solo end to end.
Schools need software that keeps every institution's data fully separate, secure, and fast, without spinning up a new server for each one. Off-the-shelf tools were either too rigid or too expensive, and most "multi-tenant" builds leak data across tenants the moment traffic gets real. The hard part isn't the features. It's the architecture underneath: strict data isolation, a clean onboarding pipeline, and background jobs that never cross wires between schools.
I built LolliesDBMS as a multi-tenant platform where each school lives in its own isolated schema, with a shared layer for the parts that should be common. The stack is Django and DRF on the backend with django-tenants for isolation, PostgreSQL with row-level security guards, Redis and Celery for background work, and Cloudflare R2 for storage. The frontend is Next.js 14. Everything runs in Docker locally so the whole environment is reproducible.
The interesting decisions were the ones nobody sees. A staged onboarding pipeline moves a school through clear states, from first review to fully active, so provisioning is predictable instead of a pile of manual steps. Background jobs are scoped per tenant so a heavy task for one school never touches another. And the whole thing is built to be debugged from real evidence, not guesswork, which is how it stays maintainable as it grows.
Want something like this for your team?
Start with a fixed-scope audit — I'll tell you what's worth building first.
Book an Audit