Homerow

Touch typing and Vim motion practice for developers

Most typing tests reward you for going fast, however you get there. This one asks a narrower question: are your hands actually anchored on the home row, or are you floating above the keyboard and getting away with it?

Start drilling

Free · no account · works offline · nothing leaves your browser

Who it's for

Developers who already live in the keyboard and want to stop being slowed down by it. If you can type quickly but suspect your technique is improvised — hands hovering, fingers wandering, the same key struck by whichever finger is nearest — this is built for exactly that case.

It is especially aimed at people learning or sharpening Vim motions. Vim's whole design assumes your right hand rests on hjkl: the motions are fast because your fingers are already there. If your hands float, every motion begins with a search, and the efficiency Vim promises never arrives.

What makes it different

Words per minute is a poor measure of technique. A fast typist with bad habits still scores well, so the number tells you nothing about the thing most worth fixing. Homerow scores technique instead, and shows speed as a secondary figure.

Anchor checks

Mid-drill, the screen interrupts and asks for a simultaneous F + J. If both index fingers are resting on their nibs, the two keys land together. If your hands are floating, each one has to find its key independently and they arrive measurably apart. The gap between those two keystrokes is a direct read on whether you were anchored.

Timing forensics

A canonical touch typist pays a real penalty on same-finger pairs like ed or ju, where one finger must leave a key, travel, and land again. Hand-alternating pairs like ur have no such constraint. Someone striking each key with whichever finger is nearest does not pay that penalty, because ed gets two different fingers. A flat timing profile across those two classes is therefore evidence of non-standard fingering — inferred without a webcam, and without anything leaving your machine.

These are inferences, not measurements. Every verdict is reported with a confidence level, and the app says unknown rather than guessing when the evidence is thin.

How to actually touch type

Most typing advice is stated as absolutes, which is why people either follow it rigidly and type badly, or ignore all of it. The app carries a fuller version of this under Technique; here is the short form.

Do your fingers have to stay on the home row?

No — and trying to keep them glued there is what makes people type stiffly. Your fingers have to leave home to reach other keys; that is the job. What matters is that they come back, and that your hands have a stable position to come back to. The bumps on f and j exist so you can find that position without looking.

How much should your hands move?

Very little. The fingers do nearly all the work while the hands stay roughly parked. Some drift is normal — reaching b, y or the number row will pull the hand slightly, and fighting that only creates tension. What you are avoiding is the whole hand travelling off to hunt a key and then having to re-find home.

Which rules are worth following, and which can you bend?

Worth following, because they compound: never look at the keyboard; use the same finger for a given key every time; return to home between bursts; shift with the opposite hand; and put accuracy before speed.

Safe to bend, because fast typists genuinely disagree about them: exactly which finger takes b, y or n; which thumb hits the space bar; number-row fingering; and deliberately picking a non-standard finger to dodge an awkward same-finger pair once your defaults are solid.

The distinction is simple. Rules that build consistency are worth the effort, because muscle memory is made of repetition. Rules that assign a specific finger to a rare key mostly are not.

The exercises, and what each is for

Finger drills

One finger at a time: every key that finger owns, with a return to its resting key between each reach. A keyboard chart shows the assignment while you drill. Start here if which-finger-goes-where is not yet automatic — the return is the habit that matters, and it is exactly what a floating hand never does.

Sentence typing

Four tiers: home-row only, same-finger drills, natural prose, and Vim motion vocabulary. The same-finger tier is deliberately awkward — it is dense in the pairs the timing analysis measures, so a short session produces enough signal to judge your fingering. The app names the finger that owns the next character as you go.

Reaction drills

One key is named at a time and the app measures how long your hand took to find it. The return to home variant makes you put the finger back on its resting key before the next target appears — the most direct training here for keeping your hands anchored between keystrokes.

Vim maze

Navigate a maze using only h, j, k and l, scored on route efficiency against the shortest path rather than on speed. The largest size accepts count prefixes, so 3j moves three cells down — the habit that separates people who use Vim from people who are fast in Vim.

Snake

The same hjkl navigation under time pressure. The clock keeps running whether you move or not, which is a much harder test of whether your hand ever really returns home.

Tracking whether it's working

Finished sessions are stored in your browser — raw keystrokes, not summaries — and the history screen recomputes everything from them: technique and anchor trends over time, a fingering verdict pooled across every stroke you have typed, and a keyboard heatmap showing which keys you are slowest to reach. History can be exported to a file and imported on another machine.

There is no server, no account, and no analytics. Nothing you type is transmitted anywhere, because there is nowhere for it to go.

Common questions

Do I need a webcam?

No. Everything is inferred from keystroke timing, which is why the app is careful to describe its verdicts as inference rather than measurement.

Does it work offline?

Yes. It is an installable progressive web app and caches itself completely, so it loads instantly and works with no connection.

Which keyboard layout does it assume?

Finger assignment is based on physical key positions, so it holds for any layout on a standard staggered keyboard. The drill text and the finger hints assume US QWERTY.

Is it free?

Yes, and open source under the MIT licence.

Start drilling