Why I created a typing practice app
TL;DR: So, I got this itch to type faster, switched from QWERTY to Dvorak, and thought, why not build my own typing practice app? Inspired by a friend's advice on muscle memory, I added cool features like tweaking word counts. It's a work in progress, but hey, check it out at type.imbmax.com – my little typing haven! 🚀
I have always been a fan of touch typing and exploring different keyboards, layouts, etc.
I learned how to touch type in QWERTY around 2006-2007 and used a bunch of online tools back then too.
I currently use Dvorak as my main keyboard layout, and my typing speed varies between 60 to 70 on most online typing tests. I can reach around 90 if I reduce the time or the number of words for a test down to 10, but that's not really what I want.
However, there are a lot of people who can type past the 100 WPM mark. I once asked somebody what the secret to getting really fast at typing was. They said something like, "think of a word you can type really fast already. Type it really fast - muscle memory, like a roll of ASDF. Apply this feel to a bunch of more words," which totally makes sense.
So, I started my mission to increase word speed, and to do that, I wanted some custom features for my typing practice apps. What better way to do that than writing my own, right? :)
I kept thinking about the logic for displaying a typing test interface for something similar to MonkeyType. In the shower, it hit me. I cracked the code, went back to my laptop before bed, and started writing some code. I got the basic typing test display working in about 1 or 2 hours. The next morning, before work, I added indicators for words per minute and test duration, and I already had something usable.
That night, I added a settings page which only supports changing the word count. This was also an important feature I wanted. It allows reducing the word count down to one word, so I get to measure my WPM on a more granular level and identify where I struggle.
I still don't have all the features I want, and it's not finalized by any means. But I'm really happy about having a small side project like this that I can keep improving bit by bit, every now and then. So, I hosted it under a subdomain (type.imbmax.com) for now.