How to use Code Typing Test
Typing speed is most useful when you can reproduce it with accuracy. Treat each attempt as a small measurement of a particular text, duration and language—not as a universal ranking.
- Choose 15, 30, 60 or 120 seconds. Word mode offers easy words, sentences and punctuation. Code mode provides original JavaScript, TypeScript, HTML, CSS, SQL and Python snippets with exact case, brackets and indentation.
- The clock starts with the first inserted character, not when you focus the input. The attempt ends at its deadline, when the target is fully entered, or when you choose Finish attempt. History records actual elapsed duration.
- Input appends at the end; Backspace removes recent characters. There is no automatic indentation. Tab explicitly inserts two spaces, scored as two logical character keystrokes. Enter counts as a newline. Paste/drop is disabled in scored input, but you can paste into Custom text to choose a practice target.
- WPM = (currently correct characters ÷ 5) ÷ elapsed minutes. Raw WPM = (all inserted characters, including erased attempts ÷ 5) ÷ minutes. Accuracy = correct logical insertion keystrokes ÷ all insertion keystrokes × 100. Backspace and navigation do not count as insertions; erased mistakes remain in accuracy and error history.
- Completed sessions are saved locally with measurements and per-expected-character counts. Personal bests are per mode/language and include different durations; compare like-for-like attempts. Progress charts load only when requested. Optional sound stays local and can be turned off.
A practical starting point
If 250 currently entered characters are correct after one minute, the net speed is 50 WPM. If you inserted 275 characters while correcting mistakes, raw speed is 55 WPM. If 260 of those insertions were correct at the time, accuracy is about 94.5%.
WPM = (250 / 5) / 1 = 50 Raw WPM = (275 / 5) / 1 = 55 Accuracy = 260 / 275 × 100 ≈ 94.5%
Common mistakes
- Rushing into a mistake and erasing it can restore net correct text, but the original insertion still affects raw speed and accuracy. That is intentional.
- A short familiar custom text can produce a very different score from a full timed test. Compare durations, languages and difficulty before judging progress.
- Code is case-sensitive and indentation matters. Automatic editor indentation is disabled so the scored input reflects what you actually insert.
- No practice text is transmitted. Session records contain metrics and character counts; clearing browser storage removes history unless you have exported a backup.
Frequently asked questions
Why does Backspace not erase my mistake count?
The count describes insertion attempts over the session. Correcting the text restores net correct characters, while the original mistake remains part of accuracy history.
How are Unicode characters counted?
The engine uses Unicode code points, not UTF-16 code units. A multi-code-point grapheme may count as more than one logical character.
Why did the attempt finish before the timer expired?
Entering the entire target or choosing Finish attempt ends a session early. The actual elapsed duration is used in both scoring and history.
Can sound or analytics slow the input?
Sound is optional and local; it fails without blocking practice. Analytics is disabled by default and accepts only fixed event names/counts after consent, never keystrokes or target text.