Introducing TouchType

Published: 2024-03-18

logo of Touchtype, featuring a typewriter

Introducing TouchType , a tool to help you build your touch typing skills at a lower level!

What?

Touch typing is the skill of typing without the need for visual cues from the keyboard. With it, you type faster since you don’t have to search for keys, improving your productivity. TouchType is a tool to help build that skill.

Why?

Storytime

I initially learned touch typing simply by using a computer a lot; I didn’t actively try to acquire it. A few years ago, I began experiencing RSI, and it sent me into a panic. Writing software is how I earn a living. The thought of no longer being able to do that… petrifying. Since then, I’ve used more ergonomic keyboards, such as the Microsoft Sculpt Ergo and the Logitech K860. Those did wonders, and I haven’t felt pain while typing in years. But I wanted more. I want to be a much faster typist and explore alternative keyboard setups. My touch typing is suboptimal. Since I never formally learned, I never considered sectioning the keyboard into regions controlled by a finger. I rarely use my pinky fingers, so there’s a lot of lateral movement by the remaining digits. It’s even worse when I’m not using a split keyboard, as there’s also a lot of wrist movement, which was likely the primary cause of my RSI.

Anyway, I decided to level up my typing skills. The keyboard is a crucial tool of my trade and likely will be until they hold me down and force a chip implant into my brain. So, I want the keyboard to feel like an extension of me, customized to my habits and workflows. I want to type as fast as I think or get as close as possible. After many hours of research, watching reviews, and interviewing friends, I settled on the Glove80.

The Glove80 epiphany

A week later, my new keyboard arrived. I immediately recognized two things. First, the keycaps felt so great to the touch. I’m a tactile person—in the general sense, not the key switch… I went with the low-force linear switches. Hats off to the design team; the keys really feel premium. The second thing I realized was that I couldn’t use this keyboard. At least the current version of me couldn’t. I needed to get better.

For the uninitiated, the Glove80 is a fully split, mechanical, programmable, columnar keyboard with a concave key well. If you don’t know what each of those terms means but want to… feel free to Google them; this isn’t a keyboard review. The only keyword that matters here is ‘columnar.’ The keys are aligned in columns, which are grooved according to the finger that’s supposed to press them. For example, the “QAZ” column is shallow since the pinky is shorter, and the “EDC” column is deeper since the middle finger is longer. This posed two challenges for me. First, column vs row-staggered meant that keys weren’t in the position I expected, so my touch typing accuracy fell to zero. Second, the grooved columns made it nearly impossible for my stronger fingers to make wide, lateral movements. This keyboard wanted to force me into good habits, and I was entirely on board, but I knew there was work to be done.

The search for typing tests

Monkeytype is fantastic. It’s a great way to practice and improve your words per minute (WPM). However, I found that I needed something more fundamental to start. Imagine you’re typing some prose on a keyboard you’re comfortable with. You think of a phrase and type it out. You’re likely not thinking about the individual letters in the word (unless you’re unsure of the spelling). The brain is brilliant that way. You think “red” at a high level and offload the implementation details. The subconscious/muscle memory goes through breaking the word into letters, finding the ‘r’, pressing it, finding the ‘e’, etc. But now, I needed to reimplement that procedure. Rewrites, am I right? For this, I didn’t need words per minute.

The why, for real this time

To reimplement this lower-level muscle memory, I needed a way to directly test and improve my character speed. If I could see which regions of the keyboard (fingers) were particularly slow, I could target that area and strengthen those fingers with practice. So, I made TouchType.

When people ask me, “What should I build?” I always respond, “Solve a problem you have.” Now, I can point to this as an example. There may be other sites out there that do the same thing. But I didn’t find any in my 5 minutes of searching, so that was good enough for me to dedicate a couple of days to think about what I wanted and build it. The benefit of this approach is that I know my product will have at least one user.

FAQ

This feels incomplete. What’s next?

Yeah, this is just an MVP, for sure. It would be nice if this app had a memory. That way, you can track/visualize your progress and perhaps tailor each test to focus more on weaker fingers. Right now, each key appears equally.

But for now, this is good enough; if you use it, your memory can track your improvement.

Why doesn’t this support most symbols

Many persons with programmable keyboards create a custom symbol layer, so I wouldn’t know what symbols to assign to which key. So full symbols support won’t happen until/unless I allow users to map their custom layouts (thinking of you, my Dvorak weirdos ❤ ️). For folks using a standard setup, practicing the numbers gets you most of the way there since you’d usually access symbols via the shift key plus a number.

Are you accepting contributions or suggestions?

Suggestions, sure! Simply ping me on Twitter.
Contributions… I have to think about that. If there’s enough interest in contributing, I’ll likely clean up and open-source the project. Fair warning, it is a Svelte (not SvelteKit) project with Tailwind and JSDoc. Any backend logic will be in Go. If that sounds interesting, feel free to let me know.

If you try it out, I hope you find it helpful. Cheers.