Retrieval-augmented generation is the reflex architecture for a catalogue assistant. I ruled it out because the whole catalogue fits in a single prompt, which makes RAG infrastructure that buys nothing and adds a failure mode. The harder constraint was hallucination. An editorial platform that recommends a film which does not exist has broken its only promise. The model returns film ids rather than prose titles, and the server validates every id against the real catalogue before anything renders, so invention is structurally impossible rather than discouraged by a prompt.
The editorial rule is a refusal too. Every collection ships with a finite count and a named curator, never an infinite “more like this” rail. Endless rails are the cheapest way to raise session length, and they are precisely the choice fatigue the product exists to argue against, so the atomic unit stays a human-curated theme with a byline and a date attached.
The two-mode token architecture was paid for up front, before it was obviously worth it: a greyscale wireframe ramp and a warm hi-fi ink ladder built on one token set. It returned the cost twice. Hi-fi took hours rather than weeks, and every late change, a token re-alias or a component fix, propagated across 33 screens at once. For surfaces with no real artwork I designed a photographic “Projection Still Life” system, deliberately not 3D so it never fights the editorial ink language.
Instrumentation was a decision, not an afterthought. The project shipped with Microsoft Clarity wired in, session recordings, heatmaps and Core Web Vitals, plus a custom event taxonomy mapped to the real funnel. It paid for itself within a day. The cursor-reactive poster dome built for the hero on 23 June was intercepting clicks on the CTAs beneath it, and the fix shipped on the 24th: a dead click no self-testing had surfaced. It also settled where the front door belonged, since the standalone landing added after the app went live drew 448 sessions against 87 on the app’s own home. Between 1 June and 7 September 2026 the project saw 1,040 unique users, 62% average scroll depth, zero rage clicks, and Core Web Vitals of 1.32s LCP and 0.039 CLS, both inside Google’s “good” thresholds. That export includes some local development sessions, so it measures behaviour rather than clean external traffic.