Mohit Shrivastava logoMOHIT SHRIVASTAVAtechnology leader · builder · operatormohit@portfolio ~/careerdownload-cv
TERMINAL · case-studies / youtube-native-video-cms
mohit@portfolio ~/careercat youtube-native-video-cms.md
Media platformsProduct apps

YouTube-native Video CMS

Built a production-grade, YouTube-native Video CMS that manages 33K+ videos and serves 2M+ daily views for RM0/month — replacing a ~RM500K/year enterprise-video vendor path by treating YouTube as the database.

Shipped · in production
$ diff — read path: before → after
-Enterprise video vendor (Brightcove / JW / Wistia) · ~RM500K/yr
-Polling YouTube every 5 min · quota exhaustion under load
-Cache scattered across layers · stale deletes reappear
+YouTube as the database · RM0/month run cost
+WebSub push notifications · ~80% less quota · ~30s latency
+5-layer cache · 97% hit · one-click purge-everything
$ cat youtube-native-video-cms.md

01 · The RM500K problem

FMT publishes 30–45 videos a day, and every enterprise video-CMS vendor pitch started the same way: “you need enterprise-grade video delivery.” Then the quote landed — Brightcove, JW Player, Wistia — and it added up to roughly RM500K a year for a stack where we'd realistically use about 15 of their 100+ features.

So I asked the obvious question nobody in those meetings wanted to ask: haven't we already built the world's best video CDN? It's called YouTube. It already solves the genuinely hard parts — storage, transcoding, analytics, global CDN, playback. What we were missing wasn't infrastructure. It was the CMS layer on top.

02 · Treat YouTube as the database

The decision that flipped everything was conceptual, not technical: most people treat YouTube as an output channel. I treated it as the database — the source of truth.

From there the architecture almost designed itself. The YouTube Data API is the source of truth; MongoDB is a cached mirror for fast reads; Next.js ISR gives static speed with dynamic freshness; Cloudflare handles global edge delivery. MongoDB earned its place because the schema changes daily — playlists, tags, metadata, experiment fields — and SQL would have drowned in migrations. Simple architecture scales better than clever architecture.

03 · The WebSub turning point

The first version polled YouTube every five minutes. It worked — until a breaking-news Friday when we uploaded 60 videos and exhausted the API quota before lunch. That led to a 3 AM debug session and, on the fifth reread of the docs, one sentence I'd skimmed three times: YouTube supports PubSubHubbub for push-based notifications.

YouTube would tell me when videos changed. I implemented WebSub over a weekend, and by Monday quota usage had dropped ~80%, update latency fell to about 30 seconds, and the cron jobs were gone. That was the lesson: a lot of good engineering is deleting cron jobs, not adding code.

04 · The operational tools and 5-layer cache

Real systems break in inconvenient ways, so the operational tooling matters as much as the features. A deleted video once kept reappearing because it was cached across Cloudflare edge, ISR, an in-memory LRU layer and MongoDB at once — clearing one layer wasn't enough. So I built a “Clear Everything” action that purges every layer and blocks until each confirms, and a one-click purge — for the 9 PM legal-team “that video needs to be gone, now” — that removes it everywhere, revalidates pages and sitemaps, and logs who/when/why.

The system survives traffic storms because of one rule: every request should hit cache. Five layers — browser, Cloudflare edge, Next.js ISR, in-memory LRU, and MongoDB only on a miss — give a 97% cache hit rate. When a clip goes viral, Cloudflare absorbs the hit and the origin barely notices.

05 · What it proves

This CMS isn't a product; it's a mindset. It manages 33K+ videos, serves 2M+ daily views, bakes in SEO and structured data so video pages rank like native articles — and it runs for RM0/month against a path that would have cost ~RM500K/year.

The takeaway for a hiring manager is simple: you don't always need another SaaS subscription. Sometimes you need someone who can engineer their way out of an expensive problem — profile instead of guess, build the boring system that stays up when the story breaks, and respect what an open platform already gives you instead of paying a vendor to wrap it.

— · Ownership & proof

Built end to end in ~4 weeks, solo
RM0/month run cost in production
33K+ videos · 2M+ daily views · 97% cache hit
SEO-native: Discover, Top Stories and YouTube carousels