ABOUT

What Typelesson is

A free touch-typing tutor for 86 languages and 24 writing systems, made by one person. No advertising, no paid tier, and no account required to use any part of it. There is one analytics script, and it does not run unless you agree to it.

Why it exists

Almost every typing tutor is an English course with its interface translated. That is a reasonable thing to build and it is not the same thing as teaching someone to type their own language. A learner of Russian does not need the buttons relabelled; they need a layout where every key produces a letter that is not printed on the keyboard in front of them, and a guide that shows both at once.

So the keyboard guide is the centre of the product: each key shows the physical key and the character it writes, together, and lights the one you need next. Everything else — the nine-stage course, the 113 drills, the configurable speed test, the three games — is arranged around that.

How the content is made, and how it is checked

There are three kinds of text on this site and it is worth being straightforward about which is which.

Derived
Facts computed from the data the app holds — which characters beyond a-z each language’s practice words use, how often they appear, how many distinct characters all 5,367 of those words need between them. These cannot be wrong unless the data is, and they are stated as what they are: a count of the words on the page, not a description of the alphabet behind them. A bank of sixty German words contains ü and not ä, ö or ß. The key maps are part of that data: each was read from the layout file for that keyboard rather than typed out from a picture of one, which is what lets the guides compare eight Cyrillic layouts key by key, or report that Tamil 99 puts the same letter in the same place as Devanagari InScript on two positions out of twenty-eight.
Generated
Per-language prose assembled from those facts. An automated check compares every one of the 3,655 possible pairs of language pages for near-duplication, and refuses to pass if any pair climbs too close. Pages that differ only by a name substituted into a sentence are the thing it exists to prevent, and it has already caught one regression that every other check on the site passed. A second check compares each language’s own three pages against each other, which turned out to be the worse number until it was measured: the lessons, test and games pages of one language shared three quarters of their prose, and now share about a third.
Written
The 42 guides, a note on each of the 86 languages and one on each writing system — all written by hand, because they carry things no amount of computation could know. That InScript is the layout Indian typing examinations are set in. That Georgian has no capital letters. That Burmese spent a decade split between two incompatible encodings.

On numbers we cannot stand behind

A lot of typing advice is repeated confidently and traces back to nothing. The clearest example is “the average person types 40 words per minute”, which appears on every site in this field and cites no study anyone can name.

Where that is the case, the guides here say so rather than joining in — and one of the automated checks refuses to pass if any page quotes that figure without also saying its provenance does not survive checking. Nothing ships until those checks are green. Where a figure is solid, such as the five-character word or the net-WPM formula, it is stated plainly. The site would rather be less quotable than more confident than it has any right to be.

What it does not do

Who makes it

One person, as a personal project, with no company behind it and no revenue from it. That is the whole answer, and it is the reason the site can be free without advertising and the reason it has no support team.

Corrections are genuinely welcome and are the most useful thing you can send. If a language note is wrong, a layout is misdescribed, or a word in a practice bank is misspelled, please say so — those are the errors that matter most here, because people are practising typing them. Write to contact@typelesson.com. Security reports are welcome at the same address; there is a security.txt with the details.

How it is built

A statically generated Next.js site with no server of its own: every page is prerendered at build time, and there are no server actions, no middleware and no API routes. Optional accounts run on Supabase with row-level security on every table. The practice data, the curriculum and the writing all live in the repository rather than in a database.

← Back to Typelesson · Read the guides · Browse 86 languages