← Ventures — GCStore Constellation

GCflix — Level-2 Deep Dive

GCflix is the constellation's video-on-demand platform: customers who bought a recording sign in with their store identity and watch it in the browser. Access is decided per content item — not per account, not per app — so a single lecture, a whole collection, or the entire catalogue can each be sold as its own thing without any code change. GCflix owns the media: ingest, transcoding, storage and delivery. It owns no entitlement whatsoever; it enforces what GCStore Core tells it. Its first title is in production: Enfermeira Remota ("Remote Nurse"), a professional-training live workshop by Nurse Cristiane (Cristiane Capeletto), sold within the company's services.

GCflix Level-2 internal architecture

Internal architecture — three planes that meet only at a token

Inside the service: a token verifier (Ed25519 JWS validated with the standard library only, algorithm pinned — closing the algorithm-confusion class of attack outright); scope authorisation (default deny; content keys constrained to a strict alphabet because they are interpolated into scope strings — the constraint is a security control, not a style rule); a media credential signer (edge-verifiable, scoped to exactly one asset version, short-lived — with a dev-mode handler that validates the identical construction in Go, so drift between app and edge fails on a laptop instead of in production); and the catalogue store (collections, modules, sessions, chapters, media assets, viewer progress, telemetry).

Design decisions worth defending

The player

Raw hls.js over a plain video element — no off-the-shelf player. The licensee overlay and the timeline-synchronised activities on the roadmap need full control of the render layer. The player runs the renewal loop (the token expires long before a feature-length recording ends, and each renewal re-resolves entitlement from scratch at GCStore Core), reports playback quality — stalls and quality switches are the direct measurement of whether the host is keeping up — and persists resume position and a separately tracked furthest point, so completion cannot be faked by dragging the scrubber.

The anti-sharing overlay names the licensee over the video and moves so a static crop cannot remove it. Its values come from signed claims, so altering them means forging a signature. It is a social deterrent, described exactly as such — a deliberate engineering-honesty stance in the design.

Interfaces

Tech stack

Go service (standard-library HTTP routing, no web framework; standard-library cryptography, no JWT library) · React 18 + Vite + TypeScript front end with hls.js · MariaDB · ffmpeg for the adaptive ladder · nginx for TLS and the media plane · Docker multi-stage build with vet and tests inside the build stage, shipping a distroless non-root image; the media library lives outside the image so a rebuild never touches gigabytes of video.

Status & roadmap

In production, serving Enfermeira Remota end to end: login, per-content gate, adaptive streaming, licensee overlay, token renewal across a multi-hour session, and playback telemetry.

Roadmap — the chokepoints are already in place: chapters for the live recording (schema and player ready); the audio-only mode in the player UI (already produced and served by the API); the admin publishing interface (the pipeline runs as a specified command-line procedure today); the timeline-synchronised interactive layer (quizzes, exercises — already modelled in the schema); and the concurrency/device cap, which attaches to the renewal call with no change on the wire. Burned-in watermarking is the answer recorded for the one platform boundary worth naming: iOS-Safari fullscreen hands playback to the system player, where no overlay can follow.