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
Albert 67daa1d409
Custom mode pipe delimiter: section count mode (#4105) albertying, miodec
* Add section input

* Restore code

* Cleaner approach

* Correct current index

* Remove import

* Call punctuation, numbers, funboxes on all words in section

* Plus n adds n words instead of n sections

* Undo

* Fix normal test

* Replace word with section when delimiter is checked

* Restore

* Set progress to current section / section total

* Fix memory funbox

* Fix randomcase

* Fix text generation when random is not enabled

* no word limit if in random section mode

* instead of using a for loop, using a while loop and stopping dynamically

* handling getting next section
tracking section history to avoid repeating sections

* test

* Revert "test"

This reverts commit 50d20fff3d.

* allowing infinite

* fixed words not being added after the first word generation

* not checking section index if infinite word

* throwing if word contains a space (should never happen)

* removed/reverted old approach to this feature

* using input history everytime for now until a better solution is found

* removed unused import

* exporting section index and current section

* code used by the previous approach, most likely will be deleted

* revered a change this pr makes (idk why this was deleted)

* missing comment

* removed comment

* added section progress tracking
word generator now returns a list of section indexes, which is stored in test words module
this array is then used to determine which section the current word belongs to inside timer progress

* better errors

* replacing multiple spaces with one
replacing starting and trailing spaces before splitting

* fixed pipe delmiter non random custom text not working

* extracted logic into constants to make the if statement easier to understand and expand in the future

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2023-05-15 11:45:38 +02:00
.github Upgrade actions in workflows (#4232) 2023-04-30 11:20:09 -04:00
.husky updated to husky 8 2022-10-21 14:51:44 +02:00
backend turns out date.now uses miliseconds instead of seconds... who knew? 2023-05-09 16:06:47 +02:00
bin Fix (#2550) 2022-02-20 22:29:39 +01:00
frontend Custom mode pipe delimiter: section count mode (#4105) albertying, miodec 2023-05-15 11:45:38 +02:00
.editorconfig
.eslintignore remove run-script-os and change the script back (#2573) 2022-02-23 01:07:48 +01:00
.eslintrc.json Require === and !== in Backend (#4086) Ferotiq 2023-03-20 12:11:21 +01:00
.gitignore added script to gitignore 2023-04-18 12:32:08 +02:00
.npmrc Enforce save exact (#2918) 2022-05-01 21:34:29 +02:00
.nvmrc chore: updated node/npm versions (#2440) 2022-02-08 00:28:56 +01:00
.prettierignore Add pretty check (#2990) bruception 2022-05-19 11:31:18 +02:00
.prettierrc TypeScript FrontEnd: Add Account Files (#2494) 2022-02-19 17:44:27 +01:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md to new verison (#2964) sillyangel 2022-05-11 14:16:08 +02:00
CONTRIBUTING.md Housekeeping (#3816) 2022-12-08 14:46:17 +01:00
CONTRIBUTING_ADVANCED.md Use the <kbd> tag instead of markdown code backticks (#4081) UnrealApex 2023-03-17 11:51:47 +01:00
CONTRIBUTING_BASIC.md Update CONTRIBUTING_BASIC.md (#3328) unrealapex 2022-07-09 14:15:23 +02:00
LANGUAGES.md converted required leftToRight to optional rightToLeft (#4229) 2023-04-26 23:34:13 +02:00
LICENSE
package-lock.json Add Monkey CI (#3799) 2022-12-05 18:52:15 +01:00
package.json Fix ESLint Error (#4026) ferotiq 2023-02-25 22:33:09 +01:00
QUOTES.md Corrected typo (#3402) JacoChong 2022-08-12 15:01:55 +02:00
README.md updated email addresses 2023-02-14 00:22:37 +01:00
SECURITY.md updated email addresses 2023-02-14 00:22:37 +01:00
THEMES.md Adding new theme earthsong and fixing typo on THEMES.md (#3756) Guillermo-N 2022-11-21 13:24:48 +01:00


TypeScript SASS HTML5

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 the experience of natural typing 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
  • 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.

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 that have helped with implementing various features, adding themes, fixing 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.