PolyType.

Capabilities & accuracy

What runs in your browser, what the full app adds, and how accurate each conversion actually is — measured on real text, not estimated.

In your browser vs. the full PolyType

Everything below runs locally and privately — nothing you type is uploaded. The website is complete on its own; a browser extension and a macOS app extend the same engines beyond this page.

Capability This website App / extension
Phonetic keyboards — type by sound (privet → привет)
Diacritic restoration — Serbian / Croatian / Bosnian (zasto → zašto)
Latin ↔ Cyrillic conversion (Dobar dan → Добар дан)
Fix a wrong keyboard layout — paste & convert (ghbdtn → привет)
Recover ь / ъ a letter-map can't (bolshoe → большое)✓ *
Works in every text field on every website✓ extension
Works system-wide, in every app✓ macOS app
Fix the layout as you type (no copy-paste)✓ macOS app
Private, offline, no account, no sign-up

* The ь/ъ dictionary loads in two tiers — a light set right away, the full set in the background — so the page stays fast and gets more accurate after a moment. The browser extension and macOS app are in preparation.

Measured accuracy

Numbers below are measured on real word-frequency corpora (held-out bands), for the everyday case — pasting a sentence. We publish them openly, including where it's weaker.

Fixing a wrong keyboard layout

"Converts correctly" = your mistyped sentence becomes the right script. "Leaves English alone" = a real English sentence pasted by mistake is not mangled.

LanguageConverts your text correctlyLeaves real English alone
Russian99.9%100%
Ukrainian99.9%100%
Armenian99.5%100%
Georgian99.3%100%
Serbian92.9%100%

Serbian is the hardest case: short Serbian words and English words collide on the keyboard, so a single isolated word is less certain — a fuller dictionary (the second tier) closes most of that gap. Whole sentences are reliable.

Recovering ь / ъ (Russian)

A plain letter-map cannot bring back the soft and hard signs. The full dictionary does:

Dictionary tierWords recoveredincl. ь/ъ words
Light (loads instantly)~84%~83%
Full (loads in background)~96%~96%

Examples: bolshoe → большое, obyavlenie → объявление, podyezd → подъезд, vyezd → въезд, semya → семья.

How we measured

Detection accuracy is tested against real word-frequency lists (OpenSubtitles), on frequency bands held out from the model, for both directions: national text typed in the wrong layout (should convert) and real English (should be left alone). The ь/ъ figures come from a 6,000-word Russian test set run through the same phonetic-skeleton index the desktop app uses. Everything runs in your browser; none of your own text is part of any measurement.

PolyType is part of ctrl8, a collection of small, local-first tools. Authored by Ilya V. Osipov.