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.