Typing Speed Test
Measures Turkish and English typing speed honestly: CPM is the primary metric, and a code mode exercises real brackets and template syntax.
This tool runs in your browser. No data leaves your device.
This tool requires a physical keyboard — a touchscreen can't measure an honest speed.
Type the text exactly. Once you move past a word you can't go back to fix it; backspace is free within the current word.
- Characters per minute (CPM)
- 0
- Words per minute (WPM)
- 0
- Accuracy
- 0%
- Consistency
- 0%
History
No attempts recorded yet.
| Date | Mode | Characters per minute (CPM) | Words per minute (WPM) | Accuracy | Consistency |
|---|
How It Works
Measures typing speed across three modes: Turkish text, English text, and code. The text pool is drawn entirely from this site’s own writing and its own code — no borrowed quotes, no copyright risk, no filler dummy text.
Why CPM is primary, WPM secondary
Most typing tests talk in words per minute (WPM), and most compute WPM as
characters / 5 — without ever looking at how long a word actually is. This tool
computes WPM from the real word count instead: word count in the target text / elapsed minutes. The result: for someone typing at the same raw speed, WPM comes out
systematically lower in Turkish — Turkish words run longer on average than English
ones (agglutinative suffixes, longer compounds). That’s not a bug; it’s the tool’s own
editorial point — comparing two languages by the same WPM number is misleading. That’s
why the primary metric is characters per minute (CPM) — language-independent, the raw
keyboard speed itself. WPM is still shown, but as a secondary reference.
Code mode
Code mode asks for a different skill than plain text: =>, &&, ${} template
interpolation, balanced parens and braces, and switching between snake_case and
camelCase. The samples in the pool are real excerpts from this codebase.
Keyboard layout
The pressed key is read via event.key; whatever the operating system’s keyboard layout
is set to is what comes through. On both F and Q layouts, ı ğ ş İ ö ç ü work correctly
with no special mapping. IME and dead-key composition are protected via
compositionstart/compositionend, so Turkish diacritic sequences never produce the
wrong character.
Correction rule
Backspace is free within the current word. Once you finish a word and move to the next one, you can’t go back to fix it — that mirrors real typing, and it closes off the unlimited-undo loophole that would make the test meaningless.
On mobile
On a touch device, the test area is replaced by a message saying this tool requires a physical keyboard, alongside a “Try anyway” button. The test area only opens once that button is clicked — there’s no automatic opening.
Privacy
This tool runs entirely in your browser and makes no network requests. The
localStorage history list holds only the last 20 attempts — mode, CPM, WPM, accuracy
percentage, consistency percentage, and date. Beyond that, each mode keeps a separate
best record — CPM, accuracy percentage, and date — from attempts typed at 90% accuracy
or higher, so it survives after the attempt it came from drops out of the last 20. That data
is never sent to a server; it stays in your own browser, and the “Clear history” button
erases both the history and that best record. There’s no leaderboard — that would
require a server, which breaks the site’s “nothing leaves the browser” rule.