Tyler is part of the Javascript infrastructure team at Stripe. He states that since 2016 Stripe had been heavily flow-typed Javascript and React, but as time went on, they began to notice cracks in the functionality as the applications grew. This is when they started investigating Typescript as an alternative moving forward.

Tyler said that, as of now, the Stripe Dashboard is the biggest migration project they have taken on, but that they are in the process of migrating all of the Stripe codebases to Typescript. After deciding to take on a more “all in” approach, they began to test the waters by converting pieces of code to see what they would be able to do with the migration.

Due to the codebase's size and the difficulties involved in migrating from one type of system to another, Tyler’s team began looking into methods of automated migration, building, adapting, and customizing different tools to help accomplish this.

On Sunday, March 6, 2022, they migrated Stripe’s largest JavaScript codebase (powering the Stripe Dashboard) from Flow to TypeScript. They converted more than 3.7 million lines of code in a single pull request. In this episode, we'll deep-dive into the details of large-scale migration.

Show Links* Migrating millions of lines of code to TypeScript * https://github.com/Airtable/typescript-migration-codemod * https://github.com/Khan/flow-to-ts * ts-morph * Tyler on Twitter: https://twitter.com/tylerkrupicka * Tyler of Github: https://github.com/tylerkrupicka