We recently migrated Patreon’s playback stack from ExoPlayer2 to Google’s new Media3 library. What began as a “simple migration” turned into a full rewrite when we hit architectural friction between the two.
Here’s how we approached the migration and what we learned from it
At Patreon, we recently scaled our platform to handle tens of thousands of fans joining live events at once. By modeling real user arrivals, tuning performance, and aligning across teams, we cut web load times by 57% and halved iOS startup requests.
Patreon’s frontend platform team recently overhauled our internationalization system—migrating every translation call, switching vendors, and removing flaky build dependencies. With this migration, we cut bundle size on key pages by nearly 50% and dropped our build time by a full minute.
Here's how we did it, and what we learned about global-scale refactors along the way:
Here’s how we approached the migration and what we learned from it