Practice typing and measure your words-per-minute to improve speed and accuracy over time.
Self-host your own typing test website with full customization of modes, themes, and test parameters.
Study a polished, real-time interactive web application with live feedback and account management.
Challenge yourself with different test modes like quotes, punctuation variants, and language-specific tests.
Multiple services required: MongoDB, Redis, Firebase config, and Express backend; Turborepo monorepo coordination adds complexity.
Monkeytype is a highly customizable typing speed test website. The premise is simple: text appears on screen and you type it as quickly and accurately as possible, then the site tells you your words per minute and accuracy. What distinguishes Monkeytype from simpler typing tests is the depth of customization and the quality of the feedback experience. While typing, it shows live error highlights, current speed, and accuracy in real time without interrupting your flow. The test offers a wide range of modes: different time limits, word counts, punctuation and number variants, quotes, and support for many languages. There is an account system that stores your typing history over time so you can track improvement. Cosmetically, users can select from many themes, adjust the cursor style, enable sound effects, and switch into a distraction-free focus mode. The site also includes challenges and novelty test modifiers for variety. The underlying tech stack is modern: TypeScript throughout, a SolidJS front end, an Express back end, MongoDB for data storage, Redis for caching, and Firebase for authentication. The whole project uses a monorepo structure managed with Turborepo. You would use Monkeytype if you want to practice typing and track your progress over time, or if you are a developer who wants to self-host a customizable typing test. It is also a good reference codebase for developers studying how to build a polished, interactive web application with a real-time feedback loop.
Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.