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
NeoNyaa 7b283b9e20
docs: Fix missing colons and comma in THEMES.md (@NeoNyaa) (#6707)
### Description

Fix missing colons and a single missing comma in the typescript
codeblock for the theme preview
#### Before

![Before](https://github.com/user-attachments/assets/0658f777-755f-46a0-9dbd-e8d7a11a8759)
#### After

![After](https://github.com/user-attachments/assets/48e4ec7d-af29-4b40-b3a4-2cb4dc752632)


### Checks

- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
  - [ ] Add language to `packages/contracts/src/schemas/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
  - [ ] Add language json file to `frontend/static/languages` 
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [ ] Add theme to `packages/contracts/src/schemas/themes.ts`
  - [ ] Add theme to `frontend/src/ts/constants/themes.ts`
  - [ ] Add theme css file to `frontend/static/themes`
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [ ] Add layout to `packages/contracts/src/schemas/layouts.ts`
  - [ ] Add layout json file to `frontend/static/layouts` 
- [ ] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
2025-07-09 12:07:46 +02:00
.github chore: fix typo in issue template (@byseif21) (#6613) 2025-06-04 10:59:44 +02:00
.husky chore: update master pre-push script 2024-07-25 11:13:25 +02:00
backend chore: update express to 5.1.0 (@fehmer) (#6691) 2025-07-03 15:43:01 +02:00
docker fix(docker): Allow to self-host without firebase config (@fehmer) (#6685) 2025-07-01 13:06:06 +02:00
docs docs: Fix missing colons and comma in THEMES.md (@NeoNyaa) (#6707) 2025-07-09 12:07:46 +02:00
frontend fix(test): funbox does not remember settings (@fehmer) (#6701) 2025-07-09 12:07:11 +02:00
packages fix: pin implementation (@fehmer) (#6699) 2025-07-09 12:05:18 +02:00
.dockerignore chore: update backend out dir 2024-07-25 19:59:05 +02:00
.editorconfig
.eslintignore fix(docker): fix configuration endpoint, add configuration export (@fehmer) (#6317) 2025-02-27 10:48:59 +01: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: upgrade node to 20.16.0 (#5688) 2024-07-30 18:44:35 +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: update file extension 2024-07-22 16:58:49 +02:00
LICENSE
monkeytype.code-workspace feat(settings): add deep links to specific sections (@fehmer) (#6661) 2025-07-01 20:46:43 +02:00
package.json chore: release v25.27.0 2025-06-28 11:13:07 +02:00
pnpm-lock.yaml chore: upgrade throttle debounce type 2025-07-04 23:25:17 +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 chore: only add sentry plugin when building from release package 2025-04-30 14:13:51 +02:00
vitest.config.js chore: fix test coverage not working with vitest workspaces (@fehmer) (#5764) 2024-08-11 17:50:26 +02:00
vitest.workspace.json


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.