Axinom
Mar 2024 — Nov 2025
MEDIA PLATFORM · PERFORMANCE & DRM
Viewers of global media clients get protected film and audio that starts reliably, loads about 15% faster, and reads in their own language.
Enterprise media platform on Mosaic, for global media clients · HQ Fürth, Germany
Stack
UI · reference build
3 environments across 1 tenant
All Environments
Enabled
3
Managed Services
20
Tenant
tnt_9c••••
A reference build of the flow, drawn in code to show the shape of the work. The production app is under NDA.
The pattern, in code
Route-level splitting with the playback path deliberately excluded — the lazy boundary is a product decision, not a default.
// Everything the user has not asked for yet is deferred...
const Catalogue = dynamic(() => import("./catalogue"), { loading: () => <RowSkeleton /> })
const Settings = dynamic(() => import("./settings"))
// ...but never anything on the critical path to first frame. A lazy player
// chunk turns a stall into a "video is broken" support ticket.
import { Player } from "./player" // eager, always
import { acquireLicense } from "./drm" // eager, always
// Locale bundles load on demand: shipping every language to every user is a
// cost paid by people who will never see the other strings.
const messages = await import("../locales/" + locale + ".json")Illustrative — written to show the shape of the decision. Client code is under NDA and none of it appears here.
01 · Context
Axinom builds enterprise media technology, and its internal platform — Mosaic — already exposes the hard parts of media delivery as micro-frontends: Media, Catalogue, Entitlement, and DRM. I led the frontend team delivering high-performance web applications on top of it for clients including the Goethe-Institut and the Lindau Nobel Laureate Meetings, whose Mediatheque holds decades of lecture recordings from Nobel laureates and young scientists. Two things make that work harder than a normal web build. Protected content has to actually play, on real devices, through a DRM pipeline that fails loudly and unhelpfully. And the audience is international, so every string, layout, and format is a localization problem, not an afternoon of translation.
02 · The decision
I made building on the platform the default rather than the fallback. Client film and audio content ran through Mosaic's micro-frontends and Mosaic APIs for content synchronization and metadata management, and secure playback went through Shaka Player so DRM was handled by a hardened player rather than a bespoke integration. i18n was designed in from the start instead of retrofitted. On top of that I treated load time as a first-class deliverable — bundle optimization, lazy loading, and caching improvements — rather than something to look at after launch.
03 · The trade-off I made
Reuse the platform vs. build it bespoke. Mosaic's micro-frontends come with their own conventions and integration seams, and there were moments a hand-rolled component would have been quicker for one client. I chose the platform anyway: bespoke media delivery means owning DRM edge cases and metadata sync forever, and that debt lands on whoever inherits the codebase. Where the platform genuinely didn't fit, we extended rather than forked — and I weighed each of those against the maintenance cost out loud, in client and internal reviews.
04 · What I measured
Page load time was the number I could defend, measured before and after the bundle work, and it moved ~15%. Alongside it I watched playback through the player's own failure taxonomy and the support tickets that reached me — which is exactly the weak instrumentation I name elsewhere, cross-region rendering once i18n was live, and the CI/CD pipelines I kept stable with DevOps — because a performance win that ships unreliably isn't a win. Delivery health was tracked in Azure DevOps and JIRA, with the process documented in Confluence.
05 · Outcome
Two client products delivered 0→1 through full development, testing, and production release cycles; ~15% faster page loads from bundle optimization, lazy loading, and caching; multi-language experiences shipped across regions; and protected content playback via Shaka Player and DRM workflows. Alongside the delivery work I strengthened the security posture by identifying vulnerabilities and adding validation and authentication layers, and mentored junior developers while enforcing coding standards.
06 · What I'd do differently
What I'd do differently: I measured page load as an aggregate for too long. Averages hide the regions and devices where the experience is materially worse, and on an international media product that's exactly where the users you're localizing for live — I'd segment by region and device from the first measurement, not the third. The broader lesson: on a platform like Mosaic, the engineering skill isn't writing more code, it's knowing which capability already exists and integrating it cleanly enough that the next team doesn't rewrite it.
What it moved
Before/after reading
A before/after page-load read taken around the bundle optimisation, lazy-loading and caching work on the Axinom media applications.
Approximate. The bundle, lazy-load and caching changes moved together, so the figure covers the work as a whole rather than isolating one of them.
Engineering practices in play
Performance is a feature
Treated load time as a deliverable rather than a post-launch cleanup, cutting it ~15% through bundle optimization, lazy loading, and caching improvements.
Build on the platform
Delivered client content through Mosaic's Media, Catalogue, Entitlement, and DRM micro-frontends and its APIs instead of hand-rolling content sync and metadata management.
Security is part of the build
Implemented secure DRM workflows with Shaka Player and proactively identified vulnerabilities, adding validation and authentication layers rather than deferring them.
Each one maps to a specific decision above — the reasoning is on record, not asserted as a trait.