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
- Live
- learnu.online ↗
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
- 01
Integrate with Better Auth and the existing schema without blocking ongoing feature work.
- 02
Ship in phased milestones—foundation, video, enrollment, payments, subscriptions—so each slice is usable and testable.
- 03
Support Arabic (RTL) and English with a single UI baseline across platform and dashboard.
Decisions
- 01
Modular NestJS services on Drizzle + PostgreSQL, prefixed IDs, and a swappable payment provider interface.
- 02
Turborepo monorepo with shared UI, config, and i18n packages; TanStack Query + Zustand; next-intl.
- 03
Cloudflare Stream + R2 with signed URLs and webhooks keep uploads and encoding off the app server.
Impact
- 01
4,000+ learners and tutors onboarded within the first week after relaunch.
- 02
Four core phases shipped and documented, with subscriptions and business features in place.
- 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
- 01
Phased delivery and a mock-first payment layer make it easier to iterate and demo.
- 02
Shared packages and strict API boundaries keep product surfaces and services in sync as the platform grows.