Selling recorded classes without the video being downloadable and passed around, and without chasing bank transfers by hand.
The solution
Payment grants access on its own, and the video never leaves the protected player.
What I built
Automatic sale and access through MercadoPago.
Video served by Cloudflare Stream: protected and adaptive.
Downloadable material on R2.
Webhook signature verification.
Outcome
Selling stopped being manual: you pay and access is granted on its own. The video never leaves the protected player, so a course cannot be forwarded over WhatsApp. The same solution was reused for Tejiendo con Andy without rebuilding it.
Stack
React + Vite
Django
Supabase
MercadoPago, HMAC-signed webhooks
Cloudflare Stream + R2
Render + Vercel
The same solution runs Tejiendo con Andy, for knitting courses. It is one product line, not a separate case.