skip to content

// 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.

live demosource
// globe20/21
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

  1. 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.

  2. 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.

  3. 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