Word lists
Our word lists come from Hermit Dave's FrequencyWords project, built from the OpenSubtitles 2018 corpus distributed by OPUS. The project's code is MIT licensed and its frequency lists are licensed CC BY-SA 4.0. The lists only contain word frequency counts, not any subtitle text.
How we turned them into test lists:
- We read each list in frequency order.
- Every word is normalised (Unicode NFC) and lower-cased, using Turkish rules for Turkish so a capital I becomes ı, not i.
- A word is kept only if it's made up entirely of letters from that language's script and is 2 to 12 characters long. The limits are wider for Indic, Thai and Arabic scripts and narrower for Chinese, Japanese and Korean. One-letter words are kept only if they're on a list for that language.
- Digits, punctuation, zero-width joiners and vocalised Arabic forms are dropped.
- A blocklist removes profanity, common first names, abbreviations, fragments of interjections, and English words that leak into other languages' subtitles.
- The first 1,000 words left become the standard list. For twelve languages, the first 5,000 become the "5k" list.
The accent pairs that lazy mode uses (so you can type e for é, for example) come from the characters actually found in each list.
The source is subtitles, so the vocabulary is conversational. Japanese words follow the corpus's own word breaks, and Thai entries are often short phrases rather than single words. Serbian uses the Latin-script list. Swahili isn't in the 2018 release, so we don't offer it.
Keyboard layouts
We wrote each layout by hand from its public specification: US ANSI, UK ISO, French AZERTY, German and Swiss QWERTZ, Spanish, Brazilian ABNT2, Dvorak, Colemak, Colemak-DH, Workman and BÉPO 1.0. Key positions are facts and can't be copyrighted. Our files follow a common, simple field structure, and we wrote every one of them ourselves.
Quotes
Every passage comes from a book first published before 1929, which puts it in the public domain in the United States, and every original author died more than 100 years ago. Two of the English books are translations, and their translators died more recently: W. K. Marriott (The Prince, 1908) died in 1927, and Louise and Aylmer Maude (War and Peace, 1922 to 1923) died in 1938 and 1939. Those translations are public domain in the United States and in countries where copyright lasts up to 80 years after the author's death, but a few countries have longer terms, so their status isn't identical everywhere. Each passage keeps its author, title and source, and that attribution appears on your results screen.
| Language | Book | Author (translator) | Source |
|---|---|---|---|
| English | Pride and Prejudice | Jane Austen | Project Gutenberg #1342 |
| English | Frankenstein | Mary Shelley | Project Gutenberg #84 |
| English | Moby-Dick | Herman Melville | Project Gutenberg #2701 |
| English | Alice's Adventures in Wonderland | Lewis Carroll | Project Gutenberg #11 |
| English | The Adventures of Sherlock Holmes | Arthur Conan Doyle | Project Gutenberg #1661 |
| English | A Tale of Two Cities | Charles Dickens | Project Gutenberg #98 |
| English | The Adventures of Tom Sawyer | Mark Twain | Project Gutenberg #74 |
| English | The Prince | Niccolò Machiavelli (tr. W. K. Marriott, 1908) | Project Gutenberg #1232 |
| English | War and Peace | Leo Tolstoy (tr. Louise and Aylmer Maude, 1922 to 1923) | Project Gutenberg #2600 |
| Spanish | Don Quijote de la Mancha | Miguel de Cervantes | Project Gutenberg #2000 |
| French | Les Misérables, Tome I: Fantine | Victor Hugo | Project Gutenberg #17489 |
| German | Die Leiden des jungen Werther | Johann Wolfgang von Goethe | Project Gutenberg #2407 |
| German | Die Verwandlung | Franz Kafka | Project Gutenberg #22367 |
| Italian | I promessi sposi | Alessandro Manzoni | Project Gutenberg #45334 |
| Italian | Le avventure di Pinocchio | Carlo Collodi | Project Gutenberg #52484 |
| Portuguese | Dom Casmurro | Machado de Assis | Project Gutenberg #55752 |
| Portuguese | Memórias Póstumas de Brás Cubas | Machado de Assis | Project Gutenberg #54829 |
| Portuguese | Os Maias | Eça de Queirós | Project Gutenberg #40409 |
| Russian | Преступление и наказание (part I, ch. I to III) | Фёдор Достоевский | Russian Wikisource |
| Russian | Анна Каренина (part I, ch. I to III) | Лев Толстой | Russian Wikisource |
| Russian | Капитанская дочка (ch. I to II) | Александр Пушкин | Russian Wikisource |
| Russian | Шинель | Николай Гоголь | Russian Wikisource |
Project Gutenberg's trademark licence only covers its header, footer and name, which we remove; we still credit each ebook number. Our Russian texts come from Wikisource, because Project Gutenberg has very little Russian prose. Transcriptions of public-domain texts stay public domain, and Wikisource's CC BY-SA licence only covers editorial additions, which we don't use. The Portuguese passages keep the spelling of their early editions and you type them as printed.
How we prepared the passages: we stripped Gutenberg's notices and wiki markup, joined paragraphs, and standardised curly quotes, guillemets, dashes and ellipses. We threw out any passage containing brackets, digits, footnote markers, all-capital headings or characters outside that language's alphabet. Passages end on sentence boundaries, run from 60 to 1,000 characters, and are sampled evenly across each book. A person then reviewed them by hand.
Fonts
All our fonts are hosted on our own server and licensed under the SIL Open Font License 1.1. The licence text sits next to each font in our repository.
- Lexend, the interface font
- JetBrains Mono, the font you type in
- OpenDyslexic, an accessibility option
Sounds
Every sound pack is generated in your browser with the Web Audio API. There are no recordings or sample files, so no sound licences apply.
Software
The typing engine, the metrics and the anti-cheat validation are our own code. We don't copy code or assets from other typing sites. The scoring methodology page explains every metric.