Inspiration
In 2025, I co-authored a research paper on how using machine translation affects literary translators’ creative process and decision-making. One of the things I was curious about after working on that project was exploring how to make visible the creative problem-solving that humans and machines bring to literary translation.
For my paper, me and the research team had to hire a human annotator to analyse the translation techniques used in the texts. However, manually annotating texts requires huge amounts of time and money, and it makes it almost impossible to scale projects to different languages and more texts, especially in under-resourced academic settings. At the same time, as GenAI advances, it is becoming increasingly harder to distinguish the intentional craft and creativity of human translators from the capabilities of LLMs.
I decided to build Equivalens to (1) make the annotation process easier for both students and researchers, and (2) to make the translation process of both humans and machines visible. This, in order to help language and translation students to analyse their work and understand how machines can affect their process, and researchers to speed up their annotation and data analysis process.
This being said, coming from the Humanities, I always believed coding wasn’t for me, and my ADHD meant most projects never made it past the planning phase. I’m currently seeing a career mentor, who suggested I take part in OpenAI Build Week. I was sceptical, but I decided to push past my perfectionism and actually finish something for once.
What it does
Equivalens is a human-in-the-loop annotation assistant for literary translation.
You upload a source text and at least one target text (a human translation, a machine translation, or both). The app identifies "units of creative potential", i.e. words or phrases which pose a translation challenge and thus give translators the opportunity to make meaningful and creative choices. It then labels them with the type of problem they pose (for example, cultural variants, metaphors, colloquial language, complex syntactical structures etc.).
Once the units of creative potential have been analysed, one can proceed to analyse the translation techniques in the target text(s). For each unit found in the source text, the tool analyses how the translator (and the machine) handled it by attaching a label describing the translation technique used, giving a rationale for the choice of label, and a confidence score (low, medium, high). This gives students and researchers a structured starting point to start analysing their translation approach and/or revise the annotations.
The taxonomy used to label units of creative potential and translation techniques is based on the one proposed in the paper I co-authored:
Macken, L., Ruffo, P., & Daems, J. (2025). The Role of Translation Workflows in Overcoming Translation Difficulties: A Comparative Analysis of Human and Machine Translation (Post-Editing) Approaches., in Proceeding of the Second Workshop on Creative-text Translation and Technology (CTT), pages 1-13, Geneva, Switzerland, 24 June 2025. Availabe at: https://aclanthology.org/2025.ctt-1.1.pdf
How I built it
I built Equivalens as a full-stack web application written in Python with a React and Vite frontend, a FastAPI backend, and integration with the Mistral API for runtime annotation requests. The app was deployed with Render. The annotation workflow and taxonomy come directly from the research paper mentioned above, ensuring the tool has a solid academic foundation. The entire project was built and extended during OpenAI Build Week using Codex, from architecture planning through debugging CORS and deployment issues on Render.
I built a skeleton app with React with a basic interface, I then used Codex and GPT 5.6 to guide me through the process of building and deploying my first functional app from start to finish. GPT 5.6 was particularly helpful in brainstorming which approaches and tools to use (e.g., when choosing the API for runtime annotation requests or the tool for deployment), and it was particularly effective for debugging. Overall, using GPT 5.6 made the entire process of coding more accessible, thus greatly reducing the time it would have taken me to research the same things online by myself.
Challenges I ran into
The biggest hurdle was overcoming my belief that I "wasn't a programmer" and wrestling with the perfectionism that paralysed me every time I got stuck. So far, every small bug felt like the end of the world. However, working with Codex changed that by making it easy to ask questions, quickly trying different approaches and still leave me the freedom to make my own choices and mistakes.
On the technical side, integrating the Mistral API securely, handling CORS issues, and managing environment variables on Render required careful troubleshooting, but Codex helped me debug systematically at every step of the way.
Accomplishments that I’m proud of
The biggest one is obvious: I finally finished something and proved to myself that I can actually be a programmer! That alone feels huge given my history with ADHD and perfectionism. But beyond that, I'm proud of creating a tool grounded in real research that actually serves a community I understand: translation students and scholars who will actually use this. I'm also extremely proud of the code itself and the documentation I produced. The user interface is also intuitive enough that people can start using it immediately without a steep learning curve, plus its style reflects my aesthetic. I think this project revealed a propensity for frontend engineering.
What I learned
This project taught me how to build a web app from scratch and manage the full pipeline from backend to frontend to deployment. In particular, I learned how to use Vite and FastAPI, and how to deploy an app with Render. I also learned how to properly document everything, from code to endpoints, workflows and limitations.
On a more personal note, I learned that with the right support and tools, my "not a programmer" identity doesn't have to define what I can build. Codex felt like having a thoughtful colleague who believed I could do this even when I didn't, guiding me throughout the entire process.
Contrary to popular belief, using GPT 5.6 actually helped me in not just blindly following what it told me, but rather engaging in conversations with it to better understand why some of the choices were being made. Its output also often prompted me to research different tools and methods, such as in the case of choosing Mistral API, which was not an initial Codex suggestion.
What's next for Equivalens
I want to develop Equivalens into a fully featured research tool with editable annotations, JSON/CSV export, better source-target alignment, and support for more language pairs. I'm planning to conduct a formal evaluation against human-annotated datasets and publish a paper documenting the tool and its research applications. The ultimate goal is to make it available to universities free, open-source, and maintained as a resource for the translation community. I'd also love to train a custom model fine-tuned specifically for translation analysis, which could make the annotations even more precise for this specialized domain, but I might need some funding for that :P
Built With
- codex
- css
- fastapi
- html
- javascript
- mistral
- python
- react
- render
- vite
Log in or sign up for Devpost to join the conversation.