Skip to content
Hooney
한국어

Experiments & tools · Paused

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.

Period
2026.05
Organization
Firstage
Role
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

  • Next.js
  • React
  • Lexical
  • TypeScript

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.