Overcoming Language Barriers: How We Built Critix

31/07/2024Stefan Atanasov
Overcoming Language Barriers: How We Built Critix

Building Critix was an exciting challenge that pushed us to think creatively and adapt quickly.


Critix is a news aggregation platform that brings together news articles, podcast episodes, and user critiques, offering content from various sources and languages. The development journey was far from straightforward, with evolving requirements and unique challenges. However, our modular approach made it easy to incorporate new features and respond to changes efficiently.


The Challenge: A Multilingual World

From the beginning, we knew that Critix had to handle content in multiple languages. Initially, supporting languages other than English was a distant goal. However, as the platform grew, the need to include content from around the world became apparent. This presented a significant challenge: how could we group and categorize content in different languages effectively?


The Solution: A Modular Approach

Our modular system architecture was key to addressing this challenge. By building Critix in a highly modular way, we could easily integrate new functionalities. For instance, when the need for multilingual content emerged, we didn't have to overhaul the entire system. Instead, we could add a translation module that seamlessly fit into our existing setup.


Overcoming Language Barriers

The core of our solution was to translate all content titles into English. This might sound simple, but it was a game-changer. By assigning an 'englishTitle' property to each piece of content, we could ensure that all articles, regardless of their original language, were clustered based on their English titles. This translation process happens before saving the article in the database, making the content accessible and comparable during our regular clustering cron-jobs.


At first, we relied on the Azure Translation API, known for its high accuracy and reliability. However, as we began processing more than 10 thousands articles daily, the costs became significant. That's when we discovered Libre Translate, an open-source alternative. While slightly less accurate, it offered a cost-effective solution for most languages. For languages not supported by Libre Translate, like Croatian and Macedonian, we continued using Azure Translation.


Conclusion: A Seamless Experience

Our journey with Critix taught us the importance of flexibility and adaptability in software development. By designing a modular system and finding efficient solutions for multilingual content, we created a platform that can grow and evolve with our users' needs. The experience not only expanded our technical capabilities but also demonstrated the power of creative problem-solving in overcoming complex challenges.


Critix is more than just a news platform; it's a testament to what can be achieved with the right mix of technology and innovation. As we continue to develop and refine the platform, we're excited to explore new possibilities and bring even more value to the users.