Filmin

Filmin

Angular to React, in production

Replaced in flight.

Filmin's TV app was Angular, coupled to an older project, carrying years of special cases. It became fully React without a release freeze — the app kept shipping while the framework changed underneath it.

Rol
Migration
Periodo
2024 — 2025
Stack
Migration · Refactor · Build tooling
100%React today
0Release freezes
40+Device models, unaffected
1Codebase at the end

The problem

A rewrite nobody can pause for

The safe way to change frameworks is to stop everything else and do only that. A streaming service can't: features, device certifications and fixes keep their own calendar. The migration had to happen inside the normal release rhythm, or not at all.

The codebase made it harder — Angular coupled to an older project, and a special case for every television that disagreed with the rest.

The approach

Sequence over speed

Decouple first, so the app stood on its own. Then move it piece by piece, with both frameworks running in the same build until the last Angular view was gone. Consolidating the platform special cases as each piece crossed over meant the React side started cleaner than the Angular side had ever been.

The result

One hundred percent, quietly

Angular is retired. One React codebase ships to every device at once, and the effort that used to go into keeping two worlds alive goes into the product instead.

My partThe migration, sequencing included
AlongsideFeature work that never paused
RhythmRelease by release, no freeze
Built withReact, with Angular beside it until the end