Version History
This page contains the development history of the typing course. New versions are added at the top of the page.
Version 0.5 — 25 September 2026
New levels, improved layout and scoring
Levels 8 and 9
Added Level 8, introducing the letter G.
G is typed with the left index finger, moving from the F key to G and returning to F.
Added Level 9 for additional practice with G.
Level 9 combines G with the previously learned letters D, F, H, J and K.
G occurs more frequently in these exercises to provide additional practice.
Exercise length for Levels 8 and 9 was set to 24 letters.
Level 8 automatically continues to Level 9.
Improved scoring system
Made the grading system more challenging.
A perfect exercise starts with a grade of 7.0.
A speed bonus is now awarded only above 100 keystrokes per minute.
Every additional 20 keystrokes per minute adds 1 point to the grade.
A perfect 10.0 therefore requires 160 keystrokes per minute without errors.
Grades are rounded to one decimal place.
The grading formula is handled centrally and therefore applies to all levels.
Improved text alignment
Matched the character spacing of the typing field with the example text.
Both now use letter-spacing: 2px.
The font size of the typing field was matched with the example text.
Typed characters now remain correctly aligned with the example characters throughout the exercise.
Improved result screen
Added different result messages depending on the achieved grade.
Special messages are displayed for a perfect 10, grades above 8, grades above 7, grades above 5 and grades below 5.
Added support for result messages spanning multiple lines.
Removed the standard “You have completed the level” message, because completing an exercise does not necessarily mean the requirements for completing the level have been met.
Version 0.4 — 25 September 2026
Collection and reward system
Letter collection
Designed a reward system based on letters earned by completing levels.
Letters can be introduced in one level and unlocked after a later practice level.
Unlocking a letter awards the player a gift.
Gifts can be opened from a separate collection screen.
A gift can only be opened once.
Collection themes
Designed support for multiple collection themes.
The first two themes are:
Animals
Plants
Object names are stored in English so that the collected object starts with the corresponding letter.
Switching themes does not reset gifts.
Once a gift has been opened, the corresponding object is immediately visible in every collection theme.
First collection objects
F — Fox / Fuchsia
J — Jaguar / Jasmine
K — Koala / Kalmia
D — Deer / Daffodil
H — Hedgehog / Hibiscus
G planned as Giraffe / Geranium
Collection database
Created the wh_typeles_letters database table.
Each letter can be linked to the level after which it is unlocked.
Animal and plant collection objects are stored for each letter.
Created the wh_typeles_user_letters table.
The system can store which letters have been earned by each user.
The date and time a letter was unlocked can be stored.
The system records whether a gift has already been opened.
The date and time a gift was first opened can also be stored.
Duplicate rewards for the same user and letter are prevented.
Successfully tested the system by assigning unopened F and J gifts to a test user.
Database management
Installed WP Adminer for inspecting and managing the custom database tables from WordPress.
Version 0.3 — 25 September 2026
User accounts and progress architecture
User accounts
Decided to use the native WordPress user system for student accounts.
Students use the Subscriber role.
Created a custom My Account page.
Added a custom login form.
Logged-in users are welcomed using their WordPress account information.
Added logout functionality.
Added a password reset option.
Student protection
Students no longer see the WordPress admin bar.
Subscriber accounts cannot use the normal WordPress administration area.
Attempts to access /wp-admin/ redirect students to their account page.
Administrators retain normal WordPress administration access.
Progress system design
Designed a system in which every level can eventually have its own minimum passing grade.
A level only counts as completed when its requirements have been met.
Previously completed levels remain available for replay.
Future levels remain locked until the required previous level has been completed.
Designed the system to retain every typing attempt as historical data.
Planned statistics
The progress system is designed to eventually record statistics such as:
Highest grade.
Fastest error-free completion time.
Highest error-free typing speed.
Number of attempts required to complete a level.
Whether a level was completed on the first attempt.
Error-free typing streaks.
Achievements
Initial ideas for achievements were developed, including rewards for:
Completing the first level.
Achieving a perfect score.
Reaching high typing speeds.
Completing levels on the first attempt.
Collecting many letters.
Consistently typing without errors.
Version 0.2 — 25 September 2026
New level system and central typing engine
From lessons to levels
Replaced the original lesson structure with a 100-level progression system.
Level pages use URLs such as /level-1/, /level-2/, etc.
Each level has a small configuration containing only the information specific to that level.
Common functionality is handled centrally.
Central typing engine
Created the central typeles-engine.
The typing field automatically receives focus.
Users can therefore start typing immediately without clicking the input field.
The timer starts on the first keystroke.
Added live display of:
Time.
Errors.
Keystrokes per minute.
Accuracy.
Correctly typed characters turn green.
The next character to type is highlighted.
Incorrect keystrokes are blocked and counted as errors.
The input field briefly indicates an incorrect keystroke.
Exercises finish automatically when the complete text has been entered.
Added a Try Again button.
Added a Next Level button.
The result is automatically brought into view after completing an exercise.
Exercise generator
Added automatic generation of random typing exercises.
Letters are divided into small groups separated by spaces.
Individual levels can determine which letters occur in an exercise.
Letters can occur multiple times in the configuration to give them additional practice weight.
Levels can specify their own exercise length.
Fixed exercise texts are also supported.
Central styling
Created the central typeles-styling stylesheet.
All levels now share the same appearance.
Added consistent styling for:
Exercise text.
Typing input.
Statistics.
Error feedback.
Results.
Buttons.
Level information.
Styling changes can therefore be made once and automatically apply to every level.
Levels 1–7
Level 1: Introduction to F and J.
Level 2: Additional F and J practice.
Level 3: Introduction to K.
Level 4: Introduction to D.
Level 5: Practice with D, F, J and K.
Level 6: Introduction to H.
Level 7: Additional H practice.
F and J are designed to be earned after Level 2.
D and K are designed to be earned after Level 5.
H is designed to be earned after Level 7.
Version 0.1 — July 2026
Project restart
Restarted development of a personal website for learning touch typing with ten fingers.
Chose WordPress as the development platform.
Revisited the earlier typing-course experiments.
Decided to rebuild the course with a more flexible structure.
Began moving away from individual standalone exercises toward reusable HTML, JavaScript and PHP components.
Established the foundation for what would later become the level-based typing system.
Prototype — 2023
First experiments
Created the first prototype of the typing course.
Experimented with PHP-based typing exercises.
Tested methods for measuring typing time and processing user input.
Created early HTML and JavaScript versions of the typing exercises.
Experimented with sound feedback for typing errors.
These experiments formed the basis for the redesigned course introduced in 2026.