Skip to content

Case study · Education platform

LearnU

Educational platform for course discovery, video learning, progress tracking, and payments—supporting students, tutors, and business teams.

Role
Full-Stack Software Engineer
Timeline
08/2025 — 10/2025 · Contract
Outcome
4,000+ users onboarded in week one
LearnU landing page: “Learn industry-ready skills & get certified” with course cards and partner logos

Overview

The problem

The product needed a single, coherent system for course creation, video delivery, enrollments, progress, certificates, and payments—replacing ad-hoc or scattered tooling.

My role

Owned end-to-end product delivery: API architecture and implementation (NestJS), learning platform and dashboard interfaces (Next.js / React), shared packages, and phased execution from courses to subscriptions.

Constraints

  1. 01

    Integrate with Better Auth and the existing schema without blocking ongoing feature work.

  2. 02

    Ship in phased milestones—foundation, video, enrollment, payments, subscriptions—so each slice is usable and testable.

  3. 03

    Support Arabic (RTL) and English with a single UI baseline across platform and dashboard.

Decisions

  1. 01

    Modular NestJS services on Drizzle + PostgreSQL, prefixed IDs, and a swappable payment provider interface.

  2. 02

    Turborepo monorepo with shared UI, config, and i18n packages; TanStack Query + Zustand; next-intl.

  3. 03

    Cloudflare Stream + R2 with signed URLs and webhooks keep uploads and encoding off the app server.

Impact

  1. 01

    4,000+ learners and tutors onboarded within the first week after relaunch.

  2. 02

    Four core phases shipped and documented, with subscriptions and business features in place.

  3. 03

    A shared UI and i18n baseline cut duplication between the platform and the dashboard.

Stack

  • TypeScript
  • React
  • Next.js
  • TailwindCSS
  • TanStack Query
  • TanStack Router
  • NestJS
  • Drizzle
  • PostgreSQL
  • Better Auth
  • Cloudflare Stream & R2
  • next-intl · Arabic RTL + English
  • Zustand
  • Framer Motion

Lessons

  1. 01

    Phased delivery and a mock-first payment layer make it easier to iterate and demo.

  2. 02

    Shared packages and strict API boundaries keep product surfaces and services in sync as the platform grows.

Next