Capital letters

Numbers / Enter key


Line length

(20 - 40) 30


Dark theme

How to

Beginner Level


Keyboard rows


Capital letters

Enter key

Advanced level

Average Speed



0 0
caps lock











Not typed



A b c / __

How to use this app

General advice and rules

It isn't about speed. Always, always correct mistakes. Make 100% accuracy you goal. By correcting all errors you can still score 100%. This program allows you to make 20, 16 and 12 consecutive errors in easy, medium and hard levels respectively. This should be more than enough to use Backspace or option + backspace / command + backspace and type those letters again. If you fail to do so before reaching those thresholds, the page will reload and current session will be lost, including all control settings.

  • 2: DO NOT RUSH.
  • 3: BLUE IS GOOD. You want to see everythig in blue to the left of the cursor.
  • 4: DO NOT CLICK "SPACE" ON WORD. If you do, that word is done and cursor will jump to the next, regardless of whether current one is completed or not. You can not return to a skipped word.
  • 5: RED MEANS ERROR, CORRECT IMMEDIATELY before hitting space, or you won't be able to Backspace anymore.
  • 6: CONSECUTIVE ERRORS: With the 20 / 16 /12 error limits you can type wrong keys into / beyond the next word. This will create a string of red characters helping you visually see that you are making mistake after mistake. If the cursor goes beyond the trailing space into the next word you need to Backspace to the previous word where the first error occours and re-type. Without completing a word with "Space", the app will assume that you're still on the current word and even hitting the right keys in the next word will result in making more errors. This will force you to go back to the first word after your last "Space" and correct your mistakes from then on.
  • 7: CONSECUTIVE SKIPPED WORDS: You are allowed to skip (by "Space") a max number of 5 words in a row before the page reloads.

  • When practicing without timer, the default number of lines is set to 20. After completing all lines, both text fields will be empty. To start a new session just click Start / New and you'll get another 20 lines to type.

Advanced level (default)

If you are confident typing all letter keys, this advanced level will help you practice what you have learned so far.
The app is ready to go with default settings, just click "Start" , make sure your Capslock is off and start typing. When timer is enabled, the first keypress will trigger the countdown and starts a 60 second session. You won't be able to make any changes to the control panel settings now, as all controls are hidden while timer is running. If you wish to customise settings, make your adjustments before typing the first key. Now you can start using your typing skills in real life situations, when writing emails, chatting on Messenger, completing forms, etc.

Advanced controls (Select any combination of text modifiers)

  • Difficulty levels:

    Easy - Most common 200 English words Based on 10fastfingers.com (Numeric characters disabled).

    Medium - Most common 500 English words / Optional numeric characters.

    Hard - Most common 3000+ English words / Optional numeric characters.

    Sentences - Email phrases and Pangrams (TEXT MODIFIERS DISABLED).

    JS - Javascript reserved keywords, code snippets (TEXT MODIFIERS DISABLED)

  • Punctuation: On / Off (default). Affects every word.
  • Capital letters: On / Off (default). Affects every word.
  • Numbers (Numberic characters): Adds numbers to text to further increase difficulty. This feature is only available in "Medium" and "Hard" difficulty levels. On / Off (default).
  • Enter key: Appends enter key to the end of line. On / Off (default).
  • Timer: 1 minute countdown timer. On / Off (default).
  • Line length: Sets the average length of text (Ranges from 20 to 40 letters per line, including spaces) that fits into a text field, ( 4-6 to 11-13 words/line).
  • Sound: Keyboard click for valid keys and alert for wrong keys. On (default) / Off.
  • Colour theme: Light (default) / Dark.
  • How to: Shows / hides info card.
  • Beginner level: Switches to beginner level controls.

Keyboard shortcuts

  • Option + Delete: Deletes current word, cursor will go to first character. Works only once, you can't delete words that are completed with space.
  • Command + Delete: Deletes current line, cursor goes back to the first character of the the line.

Text fields

  • Active text field: Text field 1. Words currently being typed, cursor tracks current position.
  • Next field: Text field 2. Preview of the next active field text.
  • Cursor: Light theme: grey background with black border. Dark theme: grey background with white border. Cursor will stay on end-of-line space and turns red when you type wrong keys, you will get notified how many characters you have gone past the end of line with every keypress.

Input section

  • Timer: 60 second countdown (disabled by default).
  • Text input: User input
  • Start / New button: Starts new session / re-generates text and ends current session. If any errors were made in current session, the app will generate words using your problem keys. To skip this feature, simply click Start / New again.

Counters / Statistics

  • Average speed: Shows current speed during timer and average speed at the end of session.
  • Green / Red / Backspace: Counter for each colour (correct key, wrong key, backspace).
  • Keystrokes: Total number of keystrokes (including space / backspace).
  • Accuracy: Colour coded current and total accuracy percentage rounded down to nearest integer. 100% accuracy is green, anything less than 87% is red and another 6 shades in between with 2% increments.

Message field

  • Instructions / warnings: All messages, instructions and warnings are displayed here.


  • Problem key trackers: Problem keys from previous session are highlighted in red.
  • Real time key tracker: Keyboard tracks your keypresses and typed key is highlighted in light blue.
  • Capslock detection: Capslock key flashes in red if capslock is on.

Problem keys

Your problem keys are being highlighted in red on the keyboard during a session. When current session ends, all mistyped keys (exclusive of numeric keys!) are remembered for the next session and the new text will only use words that contain your problem key(s) when you click "New". This feature will make you practice those keys. Problem keys after trailing space will not count towards your problem key words as they are not an actual error in current word.
You can easily skip this option by clicking "New" again or selecting another difficulty level and you will get a new random set of words from the currently selected level.

Key / Cursor colour codes

  • Cursor: Actual cursor position has grey background with black border.
  • Correct: All letters typed correctly are light blue.
  • Wrong: Letter / space errors are marked with red colour and red border respectively.
  • Backspace: Backspace corrections will temporarily be coloured orange until you re-type, backspace on space has an orange border.
  • Not typed: Characters at / ahead of cursor position or characters skipped by space on word are black in light theme and grey in dark mode.
  • Skipped: This app is very strict about space, hitting space on a word will result in the cursor moving to the first character of the next word. Red counter will be incremented by the length of every word you skip. This action can not be undone!

Beginner level

Click "Show" Beninner level in bottom right corner of control panel. Select groups of keys you want to learn, a tooltip text with the recommended finger placements will appear above the selector buttons when selector is hovered over. (L - Left / R - right + finger).
Once selection is made, button colour changes to green (selected) from red (not selected).
Ideally, you want to learn the key groups in order (This is based on typing.com).
Start with J and F moving horizontally along each row until you have completed all nine groups. Start button will generate random words with random length (up to 6 characters long) using all the characters from selected groups. You can only practice one of the three types at once. (Letter group(s), consecutive letters or rows)
Optional text modifiers: Punctuation, Capital letters and Enter key.

Beginner controls

  • Level selectors: Select letter group(s).
  • Selection type toggle: "Through " (default) will include all levels up to and including the one being selected, while "Random" allows you to single out level(s) in no particular order.
  • Consecutive: The most common 2, 3 and 4 letter combinations (bigrams, trigrams and quadrigrams) in English.
  • Keyboard rows: Top row / Home row / Bottom row words.

App cannot be displayed.

This app requires a physical keyboard and at least a tablet size screen.

Please access site using a laptop / desktop or tablet with keyboard connected.

Light theme preview

Dark theme preview

How this app came about

Touch typing is the ability to type using all your fingers - ideally with correct finger placement - without looking at the keyboard. Some benefits of this skill: saving a considerable amount of time, better for overall health, reducing physical/mental fatigue, increasing speed of text production and accuracy.

I have always thought that typing is an impressive and useful skill to have. After decades of procrastination, I finally decided to give it a go in 2019. It was a real struggle initially, I had given up and started again many times in the first two years, then I started to practice daily and I got noticeably better every day.I got to know the basics with typing.com, did more advanced stuff using keybr.com and regularly tested my speed on tenfastfingers.com. You will find links to these sites in the links section below. One thing that I would recommend you should do is to aim for 100% accuracy, it will pay off in the long term.

Learning2type.com is my own typing practice app that I designed and built in 2023 (still developing...), most features are based on other similar apps and I also implemented some of my own ideas. The most annoying thing to me is advertisements on websites...you won't see them on here and you don't need an ad blocker. Initially it was only a text input and a text field with no controls, timer or beginner level. I added all the features one by one, without having a clear idea what functionality and options/controls I wanted to implement next. I want to re-build this whole thing with React / Typescript at some point and make it a full stack app with user login and all that. Design wise, just trying to make it look the way I think is halfway decent, thats all…maybe I’ll get a designer involved to further improve the look and user experience. Going forward, the next step is to implement more features such as text editing keyboard shortcuts to delete the previous word or line to the left of the cursor.

Get in touch