Intl multilingual studio
An internal studio for multilingual content, built around an editor that places source and translation side by side (IntlEditor), which I made as its own package.
- 2026.05
- Firstage
- Design and implementation (solo)
Core value
Keeping the side-by-side review editor outside the app means other services still use it after the studio work paused.
Outcomes
- ROUND reuses IntlEditor as is to edit event guides in several languages
- The editor lives on as a package in the editors family
- Documents, language versions, and paragraph pairings are defined in a format separate from the interface
Tech stack
Context
Firstage serves Korean, English, and Japanese, and its content has to be managed in several languages as well. In May 2026 I started an internal studio meant to handle importing source text, translating, reviewing, and publishing in one place.
Decisions and implementation
- I built the editor as the intl package of the editors family (IntlEditor) rather than inside the app. It places the source and the translation side by side for review, and documents, per-language variants, and block mappings are defined in a React-free model.
- The app handles only the studio frame, creating a document on first input, auto-save, and the language switcher.
Current state
Because the editor lives in its own package, ROUND, a sports event service in the same monorepo, uses IntlEditor as is to edit event guides in several languages. I paused the studio app itself in May 2026, before connecting translation to it.
