The most customizable typing website with a minimalistic design and a ton of features. Test yourself in various modes, track your progress and improve your speed.
Find a file
Seif Soliman e6519b166c
impr(screenshot): switch to modern-screenshot for enhancements (@byseif21) (#6884)
Switching the screenshot library from html2canvas to modern-screenshot.
for both visual for users and some technical/codebase benefits.

### Visual Improvements :
 * Background css filters now shows in the screenshot. 
   fix: #6862 , 
        #1613 ,

https://github.com/monkeytypegame/monkeytype/issues/6249#issuecomment-2651215569
* Sharper, higher-quality screenshots noticeably especially on high-DPI
screens.
* Backgrounds now render correctly on small screens that were previously
missing on mobile or small viewports, now included and properly scaled.
* Previously, with extra height e.g input history opened, the background
failed to cover everything even when it should have.
* The screenshot now more closely matches what users actually see across
devices and layouts.

### Non-Visual (Technical/Codebase) Improvements :
* Supporting modern css makes us now able to use css for the heatmap
instead of the JS.
     #5892 ,
      #5879
  * Reduced bundle size: Dropping html2canvas and its dependencies.
  * Up-to-date library, easier future improvements.

---------

Co-authored-by: Samuel Hautamäki <70753342+SirObby@users.noreply.github.com>
Co-authored-by: samuelhautamaki <samuelhautamaki@noreply.codeberg.org>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-08-20 20:39:15 +02:00
.github chore: remove gulp dependency (@NadAlaba) (#6889) 2025-08-20 20:10:41 +02:00
.husky chore: update hooks 2025-08-10 13:18:21 +02:00
backend chore: log high wpm results 2025-08-20 11:57:19 +02:00
docker chore: update nodejs to 20.19.4 (@fehmer) (#6805) 2025-07-30 10:06:04 +02:00
docs chore: remove gulp dependency (@NadAlaba) (#6889) 2025-08-20 20:10:41 +02:00
frontend impr(screenshot): switch to modern-screenshot for enhancements (@byseif21) (#6884) 2025-08-20 20:39:15 +02:00
packages feat(language): add hawaiian 200 1k (@SirObby) (#6883) 2025-08-19 22:11:04 +02:00
.dockerignore chore: update backend out dir 2024-07-25 19:59:05 +02:00
.editorconfig
.eslintignore test: update to vitest3 (@fehmer) (#6811) 2025-08-04 15:55:10 +02:00
.gitignore chore: add sentry 2025-04-29 17:36:23 +02:00
.npmrc chore: switch from npm to pnpm (#5690) 2024-07-30 22:36:19 +02:00
.nvmrc chore: update nodejs to 20.19.4 (@fehmer) (#6805) 2025-07-30 10:06:04 +02:00
.prettierignore feat(languages): add portuguese 320k and 550k (@jeffersonjpr) (#5698) 2024-08-02 14:13:31 +02:00
.prettierrc
commitlint.config.cjs chore: remove gulp dependency (@NadAlaba) (#6889) 2025-08-20 20:10:41 +02:00
knip.json chore: move knip to project root (@fehmer) (#6842) 2025-08-07 15:00:43 +02:00
LICENSE
monkeytype.code-workspace test: update to vitest3 (@fehmer) (#6811) 2025-08-04 15:55:10 +02:00
package.json chore: remove gulp dependency (@NadAlaba) (#6889) 2025-08-20 20:10:41 +02:00
pnpm-lock.yaml impr(screenshot): switch to modern-screenshot for enhancements (@byseif21) (#6884) 2025-08-20 20:39:15 +02:00
pnpm-workspace.yaml chore: switch from npm to pnpm (#5690) 2024-07-30 22:36:19 +02:00
README.md docs: order oxlint badge correctly (@fehmer) (#6470) 2025-04-19 13:33:09 +02:00
turbo.json test: split integration tests (@fehmer) (#6807) 2025-07-30 13:22:40 +02:00
vitest.config.ts test: support to run/watch all tests in vscode (@fehmer) (#6868) 2025-08-13 11:14:21 +02:00


ChartJs Eslint Express Firebase Fontawesome HTML5 JQuery MongoDB OXLint PNPM Redis SASS TsRest Turborepo TypeScript Vite Vitest Zod

About

Monkeytype is a minimalistic and customizable typing test. It features many test modes, an account system to save your typing speed history, and user-configurable features such as themes, sounds, a smooth caret, and more. Monkeytype attempts to emulate a natural typing experience during a typing test by unobtrusively presenting the text prompts and displaying typed characters in place, providing straightforward, real-time feedback on typos, speed, and accuracy.

Features

  • minimalistic design, with optional advertisements and focus mode while typing
  • type what you see, see what you type
  • live errors, wpm, and accuracy displays
  • a variety of test lengths and languages
  • punctuation and numbers modes
  • quotes
  • themes
  • smooth caret
  • account system
  • challenges and just-for-fun test modifiers
  • and much more

Discord bot

On the Monkeytype Discord server, we added a Discord bot to auto-assign optional roles based on typing performance and challenge completion. You can find its code over at https://github.com/monkeytypegame/monkeytype-bot.

Bug report or Feature request

If you encounter a bug or have a feature request, send us an email, create an issue, create a discussion thread, or join the Discord server.

Want to Contribute?

Refer to CONTRIBUTING.md.

Code of Conduct

Before contributing to this repository, please read the code of conduct.

Security

To report a security vulnerability, please refer to SECURITY.md.

Credits

Montydrei for the name suggestion.

Everyone who provided valuable feedback on the original Reddit post for the prototype of this website.

All of the contributors have helped implement various features, add themes, fix bugs, and more.

Support

If you wish to support further development and feel extra awesome, you can donate, become a Patron or buy a t-shirt.