TezType Typing Academy
Built and launched an Uzbek-first touch-typing academy that treats Uzbek Latin and Cyrillic as first-class keyboard tracks, backed by a server-authoritative scoring engine so results actually mean something.
- Shipped a complete academy: 302+ lessons across five keyboard scripts, a 60-second placement diagnostic, achievements, leaderboards, and three practice games.
- Made Uzbek Latin and Cyrillic first-class typing tracks — including correct oʻ/gʻ apostrophe handling that most typing tools get wrong.
- Built a server-authoritative scoring engine with an anti-cheat replay pipeline, so speeds on the leaderboard are verified, not self-reported.
Context
Uzbek learners have never had a serious touch-typing product in their own language. Existing tools treat Uzbek as an afterthought: no Cyrillic track, broken apostrophe handling for oʻ and gʻ, and English-only curricula. TezType was built to be the academy Uzbekistan doesn't have — browser-first, accuracy-first, and honest about results.
Problem
Typing products usually fail in two ways. They either reduce practice to a speed test with no curriculum, or they trust the client to report its own scores — which makes every leaderboard meaningless. On top of that, supporting Uzbek properly is genuinely hard: two scripts, apostrophe rules that interact with keyboard layouts, and digraphs like sh, ch, and ng that need dedicated drills.
Approach
I designed TezType as an academy, not a test. A 60-second diagnostic places each learner and recommends the next lesson. The curriculum builds from home row to full fluency per script, and games exist to make repetition fun after lessons — not to replace them. Scoring was designed server-side from day one: the client streams keystroke events, and the server replays them through a canonical engine before any result counts.

What Shipped
- 302+ lessons across five scripts — Uzbek Latin, Uzbek Cyrillic, English, Russian, and Korean — each with its own keyboard layout and drills.
- A lesson player with a live HUD (net WPM, accuracy, combo, error buffer), an on-screen keyboard with finger-zone coloring, and hand guidance showing exactly which finger to use.
- A 60-second placement diagnostic that measures speed and accuracy, then recommends the right starting lesson.
- Three practice games — a timed speed test, a word-rain arcade mode, and a ghost race against your own record — plus custom-text practice.
- Accounts, streaks, 22+ achievements, public profiles, and leaderboards, with a guest mode that works entirely in the browser.

Results
- TezType is live at teztype.uz with the full academy, games, and leaderboards.
- Every submitted attempt is replayed server-side through the same scoring engine the client uses, and an anti-cheat pipeline flags impossible input patterns — so ranked results are verifiable.
- The Uzbek experience holds up to native scrutiny: correct apostrophe behavior, both scripts as equals, and a fully localized interface.

Technical Notes
The codebase is a pnpm monorepo: a Next.js 16 + React 19 web app, plus shared packages for the scoring engine, keyboard layouts, curriculum content, and database access. The scoring and anti-cheat logic live in one canonical package used by both client and server, which is what makes server-side replay possible without drift. Supabase provides Postgres with row-level security and auth; marketing numbers on the landing page are derived from the real lesson catalog at build time so they can never go stale; and the interface is built on a custom token-based design system with light and dark themes.
Keep going
Need this kind of product work?
I work on AI features, product interfaces, and content systems that have to ship cleanly and hold up in production.