Welcome to Forkable’s COSS Corner column, where I profile startups and key figures from the commercial open source software (COSS) space.
In this edition, I check in with Max Prilutskiy, co-founder of Lingo.dev, a startup building an app localization engine for developers.
The company recently introduced a cool new tool in the form of the Lingo.dev Compiler — middleware that makes any React web app multilingual at build time, without having to alter any of the existing components. And it’s completely open source.
“We built [the Compiler] to scratch our own itch, battle-tested it internally, and wanted to share this piece of tech with the community because we think it's genuinely useful,” Prilutskiy told me.
Read the story in full below.
Speaking the lingo of open source
How do you localize an app’s interface without laying a finger on the source code? This is a problem that Veronica Prilutskaya and Max Prilutskiy [pictured above] are looking to solve at Lingo.dev, a startup building an app localization engine for developers.
By way of a brief recap, Lingo.dev translates and internationalizes apps from the get-go, without having to copy-paste text from machine translation tools, or mess around with myriad translation files stored in different formats. The core of the product is a translation API that developers use locally via the Lingo.dev CLI (command-line interface), or integrate directly via their GitHub or GitLab workflows. The underlying AI localization engine, which leans on various large language models (LLMs) from the likes of Anthropic and OpenAI, automates translations the moment a code change is committed, with developers receiving a pull request with the update instantly.
I wrote a fairly in-depth piece on Lingo.dev for TechCrunch back in February, just as the (now) 18-month-old company had announced a $4.2 million seed round of funding. However, the company introduced a very interesting new feature last month in the form of the Lingo.dev Compiler — middleware that makes any React web app multilingual at build time, without having to alter any of the existing React components. And it’s completely open source, to boot.
“We built [the Compiler] to scratch our own itch, battle-tested it internally, and wanted to share this piece of tech with the community because we think it's genuinely useful,” Prilutskiy explained. “It's a developer tool — a package for developers to use in their own projects, and it's a useful piece of tech we believe will make developer lives’ easier.”
React is a popular JavaScript library for building web apps, allowing developers to build interfaces using small, reusable components. These components are the building blocks of the web app, and can include anything from buttons and labels, to forms and navigation bars.
A fully-featured web app might have hundreds of these components, making internationalization (i18n) a real minefield — especially where dozens of languages are involved. Normally, this process would involve using an i18n library such as React-Intl or i18next to extract all the text labels from banners and buttons to separate JSON files, wrap every piece of user-facing text in a translation function, and navigate a host of arduous processes.
And this is what the Lingo.dev Compiler solves. It scans the app’s React code, automatically detects and translates text in-context, then builds a multilingual version of the app. Additionally, it tracks the app’s text in Git-versioned dictionaries, ensuring only altered text is re-translated.
The Lingo.dev Compiler looks at an app’s Abstract Syntax Tree (AST) — a detailed map of its code — during the build process. Using this map, it finds groups of text called “translation scopes,” which are chunks of text that belong together and should be translated as one unit to keep their meaning and context clear.
By doing this, the compiler makes sure translations are accurate and fit naturally inside the app, preserving how the text was originally organized.
Given that Compiler operates during the app’s build process rather than runtime, all translations and processing happens upfront, meaning that the app delivers the content instantly without delay.
It’s worth stressing that the Lingo.dev Compiler is for UIs, and isn’t designed for translating content such as blog posts or documentation which require totally different workflows.
“For content, blogs, and documentation, developers can still use the Lingo.dev CLI with their own API key, or with the Lingo.dev localization engine,” Prilutskiy said.
The open source factor
Lingo.dev is no stranger to open source, having previously released the Lingo.dev CLI and Lingo.dev CI/CD integrations under an Apache 2.0 license. However, the core Lingo.dev engine and API remain proprietary.
“There are no deep business reasons behind these decisions — but the tools that make it easy for developers to do localization of their web apps and mobile apps are open source,” Prilutskiy said.
Now, with the Lingo.dev Compiler also out in the open source realm too, this will of course shine a brighter spotlight on what Lingo.dev is doing as a commercial company. However, Prilutskiy stresses that while the decision to open source Compiler may well get more eyeballs on the business side of things, it was mostly about getting useful technology into the hands of more people — much like other popular localization tools such as React-Intl and i18next. Indeed, this is why Compiler was released under a fully permissive Apache 2.0 license — developers can use their own API keys and plug the Compiler directly into OpenAI or DeepL, or their own in-house translation engines.
“Developers should know all the options and use the backend for localization that they prefer — the one that fits their specific use-case,” Prilutskiy said. “If they use Lingo.dev Engine, of course it's great. But if they don't, we are engineers in the first instance, and we're solving engineering problems. If our solution helps the community, we're happy about that as well.”