Free to use, no sign-up, works on any phone.
It runs 45 short lessons labelled L1 to L45, and after the usual row drills it moves into real-world technical lines: JavaScript and Python snippets, HTML tags, SQL queries, JSON, shell commands, IP addresses and timestamps, SKU and price lines, and symbol-heavy passwords. Each lesson is a single short line, and spaces are shown as underscores so you can see exactly where they fall.
Yes. The keys on the on-screen keyboard are clickable, so tapping a letter, number or symbol enters that character and updates your WPM and accuracy just like a physical keypress. Backspace is the exception: it is clickable but does not erase anything, because this page never lets you delete a mistake. Your physical keyboard works at the same time.
Shift is a toggle rather than a held key: tap Shift, then tap another key, and it produces the shifted version (1 becomes !, [ becomes {, ; becomes :, letters become uppercase), after which Shift switches itself off. Letters are checked without regard to case, so lowercase is accepted in the capital-letter lessons, but symbols and punctuation must match the line exactly.
The BS button on the on-screen keyboard is deliberately inert, and pressing Backspace on your physical keyboard is treated as a wrong keystroke instead of an erase. A mistyped character is underlined in red and the cursor waits for the correct key, so the only way to clear a lesson's errors is to click that lesson's button again, which resets the text, the counters and the timer.