The problem
Translations arrived as pull requests, and every one of them needed a developer to look at it, group it and merge it. Locale managers who knew the language could not ship their own work, and engineers spent their week on merges instead of code.
What we built
A review portal over GitHub
A Livewire portal that reads pull requests through the GitHub API using typed DTOs, fetches in parallel with a connection pool, caches by version, enforces role-based access and merges in bulk. A locale manager sees their language and nothing else.
A per-locale pull request splitter
A GitHub Actions workflow that splits incoming translation changes into one pull request per language, plus the Crowdin plumbing that feeds it, so reviews arrive already sorted.
The product surfaces to go with it
Product surfaces shipped in 11 or more locales including right-to-left languages, across the portal, the sales platform and the course portal.
Screens
How we worked
Our founder proposed the platform and built it across three repositories: the CI splitter, the review portal and the product surfaces that consume the translations. The measure of success was simple: no developer in a translation merge.
Results
pull requests reviewed per week through the portal
The only review path; there is no parallel manual flow.
locale managers working in it
About 30 languages actively managed.
locales shipped in product surfaces
Including right-to-left layouts.
Developer involvement in translation merges eliminated
Localized products account for 20 to 30% of campaign revenue, company-level context rather than attribution.
What's next
New languages are onboarding work now, not engineering work.