The True Speed of Thought: Rethinking Typing Metrics

The True Speed of Thought: Rethinking Typing Metrics
7 min read

For years, I've had a deep fascination with mechanical keyboards, and while I can't explain the exact reason, I believe it's a combination of many factors: the nostalgia they evoke by reminding me of my first keyboards from childhood (the feeling of playing on my Sinclair ZX Spectrum will never be forgotten), the distinctive sound of the keys, the feedback when pressing them, the actuation force and return, their appearance and endless customization possibilities, and even the community that exists around. Everything adds up, and like anything that captures your interest, once you go down the rabbit hole, it's hard to get out.

Let's face it, it's quite an expensive hobby, especially when you're drawn to classics like the HHKB (Happy Hacking Keyboard) or more modern and ergonomic styles like Kinesis Advantage360, ZSA Moonlander or what has recently become my dream keyboard, the Ultimate Hacking Keyboard 80.

As with any hobby, we always try to internally justify the expense one way or another, turning it into a necessity. With keyboards, the subtle differences between one and another can help you justify needing a new keyboard for environments where a clicky switch like the Cherry MX Blue might be too loud. But don't fool yourself, I know the truth: you simply want to get that other keyboard with a Cherry MX Silent Red switch.

Why am I telling all this? Because in my case, one of my many ways of justifying the numerous keyboards I own and will continue to acquire is improving my typing speed, and the way to measure this improvement is mainly through two metrics, WPM and ACC, or in other words, the number of words per minute you can type and the percentage of errors you make.

There are many online and offline apps for this purpose, such as MonkeyType, Typing.com or TypeRacer, all with legions of followers. The test consists of typing a text as quickly as possible with the least number of errors to calculate your average WPM and ACC.

Personally, it took me a long time to learn to type with all fingers fluently, so I occasionally visit MonkeyType to spend some time and see if I've improved, how fast I can type, how well I can avoid errors, and thinking about reaching an average of 120 WPM, as if it were a superpower.

During one of these sessions, I wondered how realistic this test is. I'm not talking about the measurement method, which is a fairly simple formula, but rather about the fact that it's a completely isolated test, with text in front of you, as if you were waiting for the starting gun of a race. And while it's fun and practice can improve typing speed and accuracy, in your daily life, I doubt these statistics come anywhere close to reality.

Whether programming or writing in your journal, chat, or email, the process is very different. It all starts in your head - you're not transcribing text, you're thinking, reflecting, multitasking, deleting, and rewriting. It's a completely different process from an isolated speed test.

This realization led me to question whether we're measuring the right things. Traditional typing tests give us a theoretical maximum speed in ideal conditions, but what about our actual, day-to-day typing performance? How fast do we really type when we're composing emails, writing code, or chatting with colleagues? These questions sparked an idea: what if there was an application that continuously measured typing speed, running in your computer in the background and generating statistics from all sessions collected day after day?

This is where Pulse was born. The concept is simple: when you start typing on your computer, Pulse detects the app you're working in and starts a typing session; when it ends, it calculates and records the WPM and ACC, as well as CPM (characters per minute).

The first test version I developed was just a menu bar showing the day's average speed, but as I used it, I began to understand what users like myself really needed from such a tool. What started as a simple concept evolved into something much more comprehensive and, I hope, useful.

At its core, Pulse remains unobtrusive - living quietly in your menu bar where you can glance at your daily metrics. You can customize what you see there, from WPM to accuracy rates, and even choose an icon that suits your style, (or disable it altogether).

Pulse real metrics

But the real magic happens beneath the surface. I realized that not every typing burst should count as a "session" - after all, typing "OK" in a chat isn't the same as composing a lengthy email. So Pulse lets you define what constitutes a meaningful typing session. You can set thresholds for the minimum number of characters, words, or even how long you need to pause before considering a session complete.

Pulse make your own

For those who miss the immediate feedback of traditional typing tests, I added an optional floating window called "Live Metrics" that shows your metrics in real-time. It's like having MonkeyType's instant feedback, but while doing your actual work.

Pulse live metrics

Of course, not every app requires the same kind of typing. Writing code in VS Code is very different from composing an email in Gmail, so you have full control over which applications you want to track or ignore.

Pulse what to track

But perhaps what I'm most excited about is the insights dashboard. This isn't just a collection of numbers - it's a window into your typing patterns and evolution. You can explore how your speed and accuracy vary across different applications, times of day, or over longer periods. It's fascinating to see how your typing performance changes when you're coding versus when you're writing in your journal, or how your speed evolves over weeks and months.

Pulse statistics

Pulse is available for free, with a one-time fee unlocking the full statistics dashboard for those who want to dive deeper into their typing analytics. And this is just the beginning - I have several exciting features planned that will make Pulse even more insightful and useful.

If you're curious about your real-world typing performance, give Pulse a try. And if you have ideas about how to make it even better, I'd love to hear from you.

Jose A.

I'm Jose

Indie developer from Spain, passionate about crafting simple and beautiful apps. Big enthusiast of minimalism, stoicism, health, AI, productivity... and yes, a Neovim fanatic & Laravel enthusiast.