// browser ml app
Multilingual translation
Translation between 200 languages that runs entirely in the browser, with no server and no API key.
A React app that runs Meta's NLLB-200 model, distilled to 600M parameters, in the browser through Transformers.js and WebAssembly. The model loads in a Web Worker, is cached after the first download, and streams translations back as they are generated.
- year
- 2025
- type
- browser ml app
- group
- web
the problem
//01the problem
Translation usually means sending your text to someone else's server. For quick, private use, the model itself can come to the user instead.
how it works
//02how it works
- 01
The model comes to you
NLLB-200 distilled to 600M parameters runs through Transformers.js on WebAssembly. The first visit downloads it once and the browser caches it, so later translations run fully offline from the page.
- 02
Never block the page
Inference runs in a Web Worker and talks to the interface by messages, so typing and scrolling stay smooth while the model loads and works.
- 03
Stream as it translates
Output streams back progressively instead of arriving all at once, so long passages start reading immediately.
measured
//03measured
- 200
- languages
- nllb-200, including low-resource ones
- 600M
- parameters in the browser
- distilled model over transformers.js and webassembly
- 0
- servers and api keys
- model cached after the first visit, runs offline
highlights
//04highlights
- 200+ languages, including low-resource ones
- No backend: inference runs in a Web Worker
- Live on Hugging Face Spaces
built with
- React
- Transformers.js
- Web Workers
- WebAssembly
- Vite
- Tailwind CSS
//05contact
Say hello. I read everything.
Email is the fastest way to reach me. For anything that needs a conversation, book a call.
to
- name
- Khaled Saeed
- country
- Lebanon