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
Eduardo Paul a846d192d1
impr(quotes): add Portuguese quotes (@eduardopaul) (#6985)
These are some beautiful quotes in Portuguese by Machado de Assis.

> Entendeu o céu que devia regar com as suas lágrimas o solo da formosa
Petrópolis.
- "The sky understood that it should water the soil of the beautiful
Petrópolis with its tears."

> Olhos de ressaca? Vá, de ressaca. É o que me dá ideia daquela feição
nova. Traziam não sei que fluido misterioso e enérgico, uma força que
arrastava para dentro, como a vaga que se retira da praia, nos dias de
ressaca.
- "Eyes of a riptide? Yes, of a riptide. That’s the feeling I get from
that new expression. They carried some mysterious and energetic fluid, a
force that pulled inward, like the wave that draws back from the shore
after a storm."

> Apesar de generosa, é exigente, e quer da parte dos seus afilhados
algum esforço próprio. A fortuna não é Danaide. Quando vê que um tonel
esgota a água que se lhe põe dentro vai levar os seus cântaros a outra
parte.
- "Despite being generous, she is demanding and expects her godchildren
to make some effort of their own. Fortune isn’t a Danaid. When she sees
that a barrel runs out of water, she will take her jugs elsewhere."
2025-09-23 17:07:38 +02:00
.github ci(assets): use zod in json-validation (@fehmer) (#6902) 2025-08-27 15:23:26 +02:00
.husky chore: update hooks 2025-08-10 13:18:21 +02:00
backend chore: change oxlint config to jsonc 2025-09-11 22:04:48 +02:00
docker chore: update nodejs to 20.19.4 (@fehmer) (#6805) 2025-07-30 10:06:04 +02:00
docs docs: update link to redis install guide (@fehmer) (#6984) 2025-09-23 17:06:28 +02:00
frontend impr(quotes): add Portuguese quotes (@eduardopaul) (#6985) 2025-09-23 17:07:38 +02:00
packages fix(funbox): caret/tape/ui issues in backwards funbox (@NadAlaba) (#6956) 2025-09-19 22:15:03 +02:00
.dockerignore
.editorconfig
.eslintignore chore: bump eslint typescript plugin (@miodec) (#6915) 2025-08-26 22:12:27 +02:00
.gitignore
.npmrc
.nvmrc chore: update nodejs to 20.19.4 (@fehmer) (#6805) 2025-07-30 10:06:04 +02:00
.prettierignore ci(assets): use zod in json-validation (@fehmer) (#6902) 2025-08-27 15:23:26 +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 fix(workspace): frontend debugging not working 2025-09-11 12:24:35 +02:00
package.json chore: bump oxlint 2025-09-11 22:04:48 +02:00
pnpm-lock.yaml chore: bump oxlint 2025-09-11 22:04:48 +02:00
pnpm-workspace.yaml
README.md docs(readme): shields link to their respective websites rather than to the images source (@matthew-wright07) (#6931) 2025-09-03 09:47:58 +02:00
turbo.json build: rename json-validation to check-assets, improve error messages (@fehmer) (#6933) 2025-09-03 18:10:34 +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.