MET Academy Student Portal: E-Learning Platform with Cloudflare DRM + Bilingual UI
Bilingual (FR/EN) custom LMS built from scratch for a French medical aesthetics platform — 20 training modules delivered via Cloudflare Stream signed tokens, admin-controlled access, and a GHL patient journey automation capturing leads from two Vercel landing pages through to post-payment nurture.
20
Training modules
2h
Video token expiry (DRM)
FR/EN
Bilingual
0
Open enrollment — admin-only
The Problem
- METCARE needed a secure, professional e-learning platform for post-operative aesthetic training that no off-the-shelf LMS could provide: bilingual (French/English), admin-only enrollment (no open registration), DRM-level video protection without enterprise licensing, and integration with their patient acquisition funnel.
- Platforms like Kajabi or Teachable couldn't handle the access control requirements or the French-language patient journey automation alongside the LMS.
The Solution
Two parallel systems.
01MET Academy LMS
- built from scratch with Next.js + Node.js REST API on Vercel, Supabase PostgreSQL with Row Level Security for auth, and Cloudflare Stream for video delivery.
- Admin creates student accounts manually
- activation email sent via Resend
- student sets password
- auto-logged in.
- All video content delivered via signed Cloudflare Stream tokens with 2-hour expiry — direct URL sharing is technically impossible;
- tokens require an active authenticated session.
- 3 public intro videos use unsigned tokens for marketing access.
- 20 training modules with Previous/Next navigation and sidebar.
- FR/EN UI toggle persistent in localStorage (default French).
- httpOnly JWT cookie authentication — not localStorage.
- Full forgot-password flow with email-triggered reset.
02Parcours 360 Patient Journey
- 2 GHL workflows — 'Website
- GHL' captures form submissions from the Vercel funnel (`parcours-360-ide.vercel.app`) into GHL contacts with team notification;
- 'Post Payment Email Sequence' fires after payment to handle nurture and onboarding.
Screenshots
Results
Custom LMS operational with admin-controlled enrollment — no self-registration, no off-the-shelf platform dependencies
Video DRM via Cloudflare Stream signed tokens with 2-hour expiry — direct URL sharing technically impossible without an active authenticated session
3 free public intro videos use unsigned tokens for marketing access, seamlessly integrated alongside gated content
Bilingual FR/EN UI (default French) with language preference persisted in localStorage across sessions
httpOnly JWT cookie auth prevents XSS token theft — more secure than localStorage-based auth common in LMS platforms
Parcours 360 patient journey: form submissions from 2 Vercel funnels captured into GHL with team notification + post-payment email sequence running automatically
Tech Stack
Want something like this?
Tell me what you're building. I'll tell you honestly if I can help.