Keyboard Builders' Digest / Community
Interview: 3 years of Monkeytype
Monkeytype's lead developer Jack was kind enough to answer my questions on the occasion of his popular typing app turning 3.
Published May 19, 2023
Everyone's favorite typing test, Monkeytype, has turned 3 recently. This minimalistic typing test with a vast array of customization options started out as a quarantine project, and it took the scene by storm in a few days right after its release in 2020. I reached out to lead developer Jack aka Miodec with some questions inquiring about his experiences and opinion on this success story.
Can you tell us a bit about yourself?
I live in the UK and pretty much spend most of my time working on Monkeytype as it's my primary "job". I have some small projects here and there, but nothing public and as large as MT. In my spare time I do some PC gaming and sim racing. Outside I play some golf and ultimate frisbee when I can.
How did you get into the keyboard hobby?
I think I originally got into mechanical keyboards around 2014/2015 when they were slowly being introduced as the new "gamer thing". Started with a Coolermaster Quickfire TK, and slowly started getting more and more into the hobby by buying a Pok3r with MX Clears, then swapping it for one with MX Blues (my dad hated that board, it was so loud).
After that I dove pretty much head first – I built a Nyquist and made a custom 3D printed case for it, handwired a macro pad, designed a custom ortholinear pcb and built another board with it (around this time I started lubing my builds), then went back to a standard staggered layout by building a Tofu68. So yeah, you could say I'm pretty invested into the hobby haha. My latest board is an AVA (Alice style) and I might stick with it for now, but you never know – the endgame doesn't exist.
How did you get into typing apps?
Partially through mechanical keyboards (sound / switch testing), partially because I just wanted to type faster – all though I wouldn't say I ever was fully committed. Just an occasional 10Fastfingers test or Typeracer race here and there – nothing special. (Probably why my top speed is still only 140.)
Can you remember how the monkeytype phenomenon started out? The first steps and the really early days?
I remember browsing r/mk one day and seeing a post about a new typing website – typings.gg. Super clean, minimalistic UI. I guess I got inspired to try to build my own typing site. I actually had one failed attempt before Monkeytype, and it was called MMTT (miodec's minimalistic typing test). I know, terrible name. You can actually still see what the site looked like by clicking here (I think at some point I decided to rebrand to nbtt – no bs typing test). It had some issues like the WPM calculation was off, browser support, accessibility, and the general nature of the words moving made it not so great. Either way, the project didn't gain any traction so I ended up abandoning it.
The idea of making my own site stayed on my mind. I didn't like any other sites that were available – they were either outdated visually, had weird typing mechanics or had not so great user experience. Nine months later I decided to try again. This time I spent a bit more time preparing a prototype, starting out with a more familiar layout, where you just see a few lines of stationary words – just like the main sites, 10FF and TR – instead of the weird scrolling behavior found in MMTT (which funnily enough I ended up adding to MT, and it's called tape mode).
As mentioned before, I took inspiration from typings.gg, keeping the UI very sparse. Everything was text, no images, only a few colors. I decided to build it in Codepen instead of launching it as its own website, because I was afraid it would be dead on arrival, just like my previous attempt. And then I posted it to reddit.
The post did end up on the first page of r/mk for a tiny bit. It only got around 400 upvotes, which is not really a lot but remember – this came after my first failed attempt, so getting that engagement was a big confidence boost. And even though this was during the time I was finishing up my final year of university, I was determined to make this a reality. I did make few updates to the codepen as the comments came in (you can see the final state of it here) but after that it was time to build it for real. And on May 15th 2020 I launched it. Made a quick reddit post about it being live, and waited.
Six days later, Taeha used it on stream. My heart was going crazy. Will something break. Will he find a bug. Will he like it. Will this actually be popular? I'm looking at my analytics, I see 120 users on the site. I'm just sitting there smiling, talking with Equity and Vastus (my two best friends and current Monkeytype Discord moderators), just watching Nathan's stream.
And here is the exclusive, never seen before screenshot of our reaction to him using monkeytype:
One of my happiest and proudest moments. Crazy to think that back then, 120 users for a few minutes was crazy, when these days Monkeytype gets around 120k daily. Things can really change in 3 years.
Monkeytype is on github and has contributors from all around the world, but how should people imagine the work going on in the background? Is there a team or is it largely a one-man show?
So yeah, Monkeytype is officially a one man thing – I don't employ anyone. Open source contributors come and go (and you can see the full list here along with how many changes they've made), but there were some very important people that made large changes which helped the project in different ways (lukew3, seerlite, typerqeo, rizwanmustafa, ferotiq, bruception). Monkeytype wouldn't be Monkeytype without them, and without all the other contributors.
Monkeytype is probably the number one typing app right now. What was the key to get there in your opinion? Were there any major achievements along the road you'd like to highlight?
Well, getting a solid boost from Nathan as mentioned before definitely helped haha. It's really hard to tell what was it exactly. It's my first project of this scale, so it's not like I knew what I was doing (I still kinda don't). I can only guess that it was a combination of:
- the pandemic (people spending a lot of time in their homes)
- the clean, minimalistic design
- the customizability, being able to practice typing any way you want
- it being open source
- constant updates and improvements
I can't remember any specific achievements to be honest. I guess seeing the website start showing up in the background all over the internet (tiktoks, reddit posts, keyboard streams, youtube videos). It's funny how I can be watching something completely unrelated to keyboards or typing (like a laptop review on Youtube) and suddenly see my website show up in the video and the only thing I can say is "Hey, I made that".
Any difficulties, lessons learned?
Oh man, so many. I'm still learning. Learning how to build a community, how to handle business relations, how to write good code – this project keeps throwing new issues at me, and the only thing I can do really is learn and overcome them.
Are there some public user stats you could share?
Quick stats are:
- 2 million registered users
- around 120k daily users
- 819 million results started, 278 million of them were actually finished
- 443 years spent typing in total
You collect a lot of data I guess. Any interesting facts or trends you can read out of them?
Yeah I do collect a lot of data but I don't really analyze it that much. I can tell you that the average test saved is a 76.3wpm, 93.8% accuracy, 30.5s in duration. 5.5% of the results are new personal bests, and there are 5.84 results saved per second.
You won an award for being one of the fastest growing sites of 2022. What was this prize about exactly?
The prize was for general traffic growth. Semrush tracks sites in many categories for being the quickest growing, having the most referring domains, largest growth through social media, and sends out those awards every year. Exact award title is: Semrush Awards 2022 - Gold, Omnichannel Growth, Education Category, 1M-10M traffic
What are you working on right now? Any future plans you'd like to share?
Day to day I respond to emails, provide support to users, interact with the community, handle quote reports (typos, inappropriate content, so on), review and merge pull requests. The main project right now is multiplayer aka Tribe. It's been a bit of a difficult because I've never built a real time online game (another first for me). I think because of the traffic and attention Monkeytype gets I put a lot of expectations on myself – I don't want to fail people, I don't want to deliver something that would be buggy. It's been weighing on my mental health, and at times I don't want to work on it thinking that "I will fail so what's the point". I've been slowly getting better, but it's a long process. But still, I'm slowly chipping away at it, and you can try it at: https://dev.monkeytype.com/tribe (can break, obviously)
What keyboard(s) did you use to type the answers? Any form factor, switch or keycap profile preferences?
As mentioned before, AVA with lubed Durock linears (Alice style board). For keycap profile - I tried SA, DSA, OEM and currently using Cherry (I still want to try MT3 at some point). Switch preference? Linears all the way, but I do enjoy the clicky BOX switches from time to time.
Finally, what can the average monkeytype user do to help your work?
Nothing special really. Just keep hanging out in the Discord server, keep getting better at typing, keep reporting bugs and suggesting new features. If people really want to support the project financially they can do so on Patreon, Ko-Fi, by buying merch or by enabling ads. They can also follow the socials on Twitter and TikTok.
I always said that these things are optional, and the greatest thing everyone can do is just share the site with their friends and enjoy it. Even though the project outgrew my expectations years ago, a great user experience always comes first – and I can't wait to see where Monkeytype will be in another 3 years.
Published on Fri 19th May 2023. Featured in KBD #123.
Did you like reading this post?