Yelp's Client Data team migrated their frontend React monorepo from the deprecated apollo-tooling to GraphQL Codegen, touching 500+ packages and thousands of generated files without requiring any developer to change their own code. The team chose a transparent migration strategy — configuring GraphQL Codegen to produce output identical to apollo-tooling's (same file names, nested type names, inlined enums) rather than adopting the new tool's defaults. They initially forked and patched GraphQL Codegen plugins to match the required output format and fix a concurrency issue in large monorepos, then collaborated with the GraphQL Codegen maintainers to upstream those changes into the official v6.0.0 release. An incremental 'divide and conquer' approach — maintaining a shrinking list of packages still on the old codegen — allowed continuous progress and early feedback. The result is a cleaner dependency tree, simpler build tooling, and an officially supported migration path that now benefits the wider GraphQL community.

13m read timeFrom engineeringblog.yelp.com
Post cover image
Table of contents
IntroductionThe Old World: Apollo ToolingEvaluating AlternativesThe Devil in the DetailsUpstreaming Our ChangesCompatibility FixesThe Finish LineLessons LearnedWhat’s Next
3.3K Impressions1 Comment