SpandTranslate
Upload your pages; it finds the bubbles, translates the text into your language, erases the original lettering and typesets the translation back in. My own venture.

Sorun
Why it exists
Translating a manga chapter is manual work: every bubble is read, translated, the original lettering is erased and the art repaired, then the translation is typeset back in. A single chapter takes hours. I wanted it to take one click.
Yaklaşım
Heavy work on the server
All the heavy work runs on the server: image processing on GPU servers, translation with AI models. Closing the tab does not stop the job, and only successfully translated pages are charged.
We did not use an off-the-shelf detector for the bubbles; we trained SpandZero on our own dataset.
The architecture scales horizontally: new GPU workers spin up on their own as work comes in and step back when the load drops. A single user can send 5 GB of images, 600 chapters, 18,000 pages at once; the system slices it up across workers, so nobody waits in line.
Nasıl çalışıyor
End to end
-
Upload
The whole chapter is dropped at once.
-
Detect
Our own model finds the bubbles and text.
-
Translate
Translated with the chapter context kept.
-
Clean
Original lettering is erased, the art repaired.
-
Typeset
The translation is fitted in; edit and download.
Teknik özet
- Server
- Laravel 12, PHP 8.4
- Interface
- Vue 3 + Inertia, TypeScript
- Editor
- Konva canvas
- Detection
- SpandZero (our own model)
- Image processing
- GPU workers, Beam
- Translation
- LLMs via OpenRouter or your own key
- Desktop
- macOS and Windows app
Önemli değişiklik
Speed and trust
- Small jobs stuck in line. Short jobs waited behind heavy ones. I added priority lanes; under the same load three clean-up jobs went from 124 s to 42 s.
- A crashed server. When a GPU worker died its jobs hung. Now a live worker takes them over in about 45 s, down from 6 minutes.
- Money safety. The same job is never charged twice and empty pages are never charged, guarded by automated tests.
Sonuç
- of images per user, concurrently
- 5 GB
- chapters at once
- 600
- pages in one go
- 18,000
- interface languages
- 23
- translation languages
- 160+
- export formats
including editable PSD - 7
Ekranlar


Ne öğrendim
A long job should never depend on the user's browser tab. The longer a job runs, the more likely it is to stop halfway, so I built every step to resume where it left off.
The next branch is your project
Tell me in a few sentences what you want to build. I usually reply the same day, the next day at the latest.
Right now I am open to new work: freelance projects, remote or on site in Istanbul. A web platform, a model to train or a stubborn device; whichever it is, write or call.