SimplyTranslate is a collection of “translation scrapers with interfaces for gemini and the web,” made by metalune. In other words, it’s a privacy-respecting front end for Google Translate, similar to Twitter’s Nitter. Over the course of a couple days – and one synchronous hacking session – I containerized the program to make it easier to deploy on servers worldwide.

When I first found the program, I immediately wanted to add it to my collection of self-hosted front ends. I had only one problem: I run my services with Docker, and SimplyTranslate had no Dockerfile. I tried slapping something together quickly, but curling from the container only threw an error:

curl: (52) Empty reply from server

I hopped onto the #simple-web IRC channel on Libera.Chat and started chatting with the devs. A couple days of back-and-forth later, we sat down to debug together. After scouring the internet, we determined that the application was binding to the wrong interface:, which is only accessible from the local machine, instead of, which is public.

I cooked up a pair of working Dockerfiles – the first running the app directly and the second through uvicorn. Metalune made a repo for the Dockerfiles, and I sent in a patch via email. It was committed within the hour.

This contribution was particularly interesting! We collaborated over IRC and across timezones, and I ended up returning to git’s roots by submitting the patch via git send-email. Compared to the GitHub workflow, this feels very natural!

You can use SimplyTranslate over on metalune’s hosted instance, and browse the source code on sourcehut.