Skip to content
All projects
Featured Work· 2026Featured

Scrivane

A multi-tenant learning management system for training businesses — four portals, installment payments, white-label course storefronts on custom domains, and publicly verifiable certificates. Architected and built solo, end to end.

Multi-tenant LMSNext.js 15React 19PrismaPostgreSQLPaystackStripeInstallment BillingPage Builder
Links not public
▸ Overview
Scrivane is a multi-tenant LMS I'm building solo for training businesses that have outgrown course marketplaces but can't justify enterprise LMS pricing. It serves four distinct portals — Student, Instructor, Admin, and System Admin — under a dark-first, deliberately premium design language. Tenancy is enforced at the ORM layer: a Prisma client extension scopes every query to the current tenant by construction, so isolation doesn't depend on every developer remembering a WHERE clause. The deliberate escape hatch is a separate raw client, so any query that crosses tenants is visible and auditable by name. Payments are built for how high-ticket training actually sells in Nigeria: installment plans with proportional module access (learners unlock content as they pay), auto-charge with a pay-link fallback when a card charge fails, and a processor-agnostic gateway layer running Paystack and Stripe behind one interface. Each tenant gets a configurable public storefront — course catalog, course detail, and blog — served on their own domain, plus a visual page builder with AI assistance for building branded pages without a developer. Certificates are issued idempotently and verifiable on a public page that exposes no learner PII. For enterprise prospects with data-residency demands, a bring-your-own-database layer lets a tenant run on their own Postgres.
▸ Impact & Performance
4
Portals
2
Payment processors
Solo, end-to-end
Built
▸ Challenges
  • 01

    Guaranteeing tenant isolation on every query path — one missed tenant filter in a 200-model schema is a data breach.

  • 02

    Selling high-ticket courses in the Nigerian market, where installment payments and multiple processors are table stakes, not extras.

  • 03

    Enterprise prospects requiring their data in their own database — without forking the codebase per customer.

  • 04

    Letting non-technical training businesses build branded public sites without opening XSS holes or a support burden.

▸ Solutions
  • A Prisma client extension that injects tenant scoping at the ORM layer, with a separately-named raw client as the audited escape hatch.

  • A processor-agnostic payment gateway over Paystack and Stripe: installment schedules, proportional module unlocking, auto-charge with pay-link fallback.

  • A bring-your-own-database layer — model-aware client proxy and per-tenant client registry, feature-gated — so enterprise tenants run on their own Postgres.

  • A single visual page builder with AI-assisted generation and hardened rendering, powering both the builder preview and the live tenant storefronts.

▸ Results

Four portals, payments, certificates, tenant storefronts, and the page builder are built and working — by one engineer.

Certificates verify on a public page with no learner PII exposed.

Enterprise BYODB foundation shipped: a tenant can be pointed at their own Postgres behind a feature gate.

Currently in outreach to its first training-business customers in Nigeria.

▸ Domains
saasfrontend
▸ Work with me

Want something built like this?

I'm available for new projects. If you have an idea that needs a full-stack or AI engineer, let's talk.