Skip to content
Neel Bhavsar
All work

One backend serving a CMS and a streaming front-end

Jolt

Role
Backend lead
Year
2025
Impact
One backend, two products
Jolt — cover

Overview

Jolt is two products on one spine. Internally it is a CMS where the team ingests films, writes metadata, manages categories and controls what goes live. Externally it is a public streaming interface where audiences browse and watch.

Both read the same MongoDB catalogue, which means an editorial change is visible on the public site without a sync job or a second source of truth.

What I built

  • Led the backend for both surfaces — Express API boundaries over one shared MongoDB model, with separate permission layers.
  • Built the film ingestion and metadata pipeline, including encoding status tracking through to publish.
  • Implemented range-request video delivery for seek-friendly playback.
  • Modelled publishing state so drafts, scheduled and live content are the same documents under different visibility rules.
  • Integrated Auth0 for identity, so the editorial team and public viewers authenticate through one managed provider instead of a hand-rolled login.

The hard parts

Two audiences, one schema

The CMS needs everything; the public site must never leak drafts or internal notes. Rather than duplicating the catalogue, visibility is enforced at the query layer with separate read models over the same collections.

Two audiences, one identity provider

Editors and viewers are the same Auth0 tenant but must not share permissions. Roles come off the token and map to the API's own permission layer, so a viewer session can never reach a CMS route even when the login is identical.

Seeking without buffering

Video is served over HTTP range requests so the player can jump to any timestamp without pulling the whole file, which cut both seek time and bandwidth on long films.

Encoding is slow, the UI is not

Upload and encode are decoupled from the request cycle. The CMS tracks per-film processing state so editors see accurate progress and cannot publish something still mid-encode.

Outcomes

Products, one backend
2
Editorial to live
Instant
Streaming delivery
Range

Stack

  • Node.js
  • Express
  • MongoDB
  • Video Streaming
  • CMS
  • Auth0

Live

Visit the site