Embeddable video playlist platform
Client project, not public
A multi-tenant platform for organizing videos into playlists, restricting who can watch, and embedding them on other sites. Built for a long-time client to manage content for his own customers.
- The problem
- A long-time client managed video content for many customers and needed one place to organize it, control who could see what, and show it on each customer's site without hosting the videos or rebuilding a player every time.
- What I built
- A full-stack TypeScript monorepo: a NestJS API on PostgreSQL with Prisma, and a Next.js front end. It doesn't host video. It organizes videos from Vimeo and other sources into playlists, with admin and user roles, channel-scoped permissions, and member-only visibility. Auth uses JWT in HTTP-only cookies, checked in both the API and Next.js middleware. Playlists embed on third-party sites by iframe, restricted to allowed domains, with a custom CSS build for the embedded player. Deployed on Render with a managed database, plus a Docker setup that mirrors production locally.
- Next.js
- NestJS
- TypeScript
- PostgreSQL
- Prisma
- Tailwind
- Docker
- Render