WeBuildCrew
🎓 Education · SaaS

LearnSphere — LMS Platform

A learning management platform with a course builder, video lessons, quizzes, certificates and subscriptions — for an education business going digital.

Timeline
8 weeks
Role
Full-stack development
Team
2 engineers
Year
2025
Next.jsTypeScriptPostgreSQLPrismaStripeMux
🎓
LearnSphere

course

Builder

video

Streaming

auto

Certificates

Client goals

  • Let instructors build courses
  • Stream video reliably
  • Sell access via subscriptions

Project overview

LearnSphere lets instructors build courses with video, quizzes and certificates, and sell access via subscriptions — a full LMS for an education business.

The client problem

Our solution

A purpose-built LMS with a course builder, Mux video streaming, quizzes, auto-certificates and Stripe subscriptions, with per-student progress tracking.

What we built

Features

🏗️

Course builder

Modules, lessons and resources.

🎬

Video lessons

Adaptive streaming via Mux.

Quizzes

Assessments and grading.

🏅

Certificates

Auto-issued on completion.

💳

Subscriptions

Plans and course purchases.

📈

Progress

Per-student tracking.

Under the hood

Technical code

prisma/schema.prisma
Prisma
model Organization {  id        String   @id @default(cuid())  name      String  members   Membership[]  createdAt DateTime @default(now())} model Membership {  id     String @id @default(cuid())  role   Role   @default(MEMBER)  userId String  orgId  String  @@unique([userId, orgId])} enum Role { OWNER ADMIN MEMBER }
app/api/checkout/route.ts
TypeScript
import Stripe from "stripe";const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!); export async function POST(req: Request) {  const { priceId, orgId } = await req.json();  const session = await stripe.checkout.sessions.create({    mode: "subscription",    line_items: [{ price: priceId, quantity: 1 }],    metadata: { orgId, priceId },    success_url: process.env.BASE_URL + "/billing?ok=1",    cancel_url: process.env.BASE_URL + "/pricing",  });  return Response.json({ url: session.url });}

Integrations

APIs & services

Mux

Video encoding and streaming.

Stripe

Subscriptions and purchases.

Resend

Enrolment and certificate emails.

Process

Development workflow

  1. 1

    Discovery

    Goals, users and success metrics defined on a free call.

  2. 2

    Planning

    Fixed scope, milestone plan and timeline in writing.

  3. 3

    UI/UX design

    Wireframes and a clean, modern design system.

  4. 4

    Backend setup

    Database schema, auth and core services.

  5. 5

    API development

    Typed, documented endpoints and integrations.

  6. 6

    Frontend

    Responsive, accessible UI wired to the API.

  7. 7

    Testing

    QA across devices plus performance & security checks.

  8. 8

    Deployment

    CI/CD, monitoring and a smooth production launch.

  9. 9

    Support

    Ongoing maintenance, updates and new features.

Speed & SEO

Performance & SEO

Performance

  • Server-side & static rendering for instant first paint
  • Image optimisation and lazy loading
  • Code-splitting and route-level prefetching
  • Edge/CDN caching with smart revalidation
  • Green Core Web Vitals (LCP, CLS, INP)
  • Database indexing and query tuning

SEO

  • Per-page metadata, canonical URLs and Open Graph
  • Structured data (JSON-LD) for rich results
  • Programmatic sitemap & robots
  • Semantic, accessible HTML
  • Clean, descriptive slug URLs

Built secure

Security

🔒Session-based auth with role permissions
🔒Server-side authorization on every protected route
🔒Input validation (Zod) on client and server
🔒Secure payments via hosted Checkout (no card data stored)
🔒Rate limiting and abuse protection
🔒Encrypted secrets and least-privilege access

Outcome

Results & impact

course

Builder

video

Streaming

auto

Certificates

LearnSphere unified courses, streaming video, quizzes, certificates and billing into one platform — turning a scattered offering into a scalable product.