Figma invented Skew, a custom language for mobile rendering, but found it hard to scale due to integration and developer ecosystem issues. They recently migrated all Skew code to TypeScript to streamline integration, leverage modern JavaScript features, and improve developer onboarding. The migration was only possible due to increased mobile browser support for WebAssembly, replacing core Skew components with C++ components, and team growth. The transition involved a Skew-to-TypeScript transpiler and resolving performance issues with TypeScript array destructuring, devirtualization, and initialization differences. Figma prioritized developer productivity with seamless debugging using source maps and conditional compilation during the migration process.
https://www.figma.com/blog/figmas-journey-to-typescript-compiling-away-our-custom-programming-language/