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
Brian Evans cffa7514ea
Save speed stats in leaderboard update (#3652) mrbrianevans
* Save speed stats in leaderboard update

Saves a histogram data structure of speeds for buckets rounded to the nearest 10.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* API endpoint to get public speed stats

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add APE class for public stats (WIP)

I created an APE class for accessing public stats. Also stubbed getting and showing the public speed stats on the about page. Haven't implemented the histogram yet though.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Draw histogram for global speed stats

On about page

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Update histogram colors on theme change

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Fixed out-of-order data in speed histogram

 Data was not sorted correctly, which resulted in an incorrect histogram being drawn.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Public speed stats PR fixes

Small fixes based on PR feedback:
 - changed _req to req
 - removed unnecessary client version header

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add endpoint for typing stats

New endpoint to retrieve the public typing stats such as global count of tests completed.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Renamed public-stats to public

Except in cases where it would cause an identifier named `public` as this is forbidden in strict mode.

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add stats section to about page

In this commit:
 - add a section above about called stats
 - display typing stats in three columns
 - underneath show the histogram of speeds on english time 60
 - make chart responsive

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* Add unit test for Public DAL

Signed-off-by: Brian Evans <ebrian101@gmail.com>

* updated styling

* only requesting data once per session

* going one column on narrow screens

* added option to specify number of decimal poitns

* just showing million instead of abbreviating
updated structure
updated styling

Signed-off-by: Brian Evans <ebrian101@gmail.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2022-10-18 15:45:45 +02:00
.github Housekeeping (#3374) 2022-08-08 16:16:07 +02:00
backend Save speed stats in leaderboard update (#3652) mrbrianevans 2022-10-18 15:45:45 +02:00
bin Fix (#2550) 2022-02-20 22:29:39 +01:00
frontend Save speed stats in leaderboard update (#3652) mrbrianevans 2022-10-18 15:45:45 +02:00
.editorconfig Add .editorconfig (#1976) 2021-10-10 16:09:32 +01:00
.eslintignore remove run-script-os and change the script back (#2573) 2022-02-23 01:07:48 +01:00
.eslintrc.json added rule to avoid duplicate imports 2022-09-27 15:49:02 +02:00
.gitignore removed ads.txt from project 2022-06-29 12:06:59 +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 Added basic information about redis. (#3495) victorKochkarev 2022-09-04 12:40:10 +02:00
CONTRIBUTING_ADVANCED.md backend server, not database 2022-10-18 12:35:40 +02:00
CONTRIBUTING_BASIC.md Update CONTRIBUTING_BASIC.md (#3328) unrealapex 2022-07-09 14:15:23 +02:00
LANGUAGES.md Update some document links (#2919) 2022-05-03 13:44:39 +02:00
LICENSE Create LICENSE 2020-05-30 00:30:54 +01:00
package-lock.json updated package 2022-08-30 16:24:16 +02:00
package.json lint changes directory first 2022-09-22 13:55:39 +02:00
QUOTES.md Corrected typo (#3402) JacoChong 2022-08-12 15:01:55 +02:00
README.md Update README link to discord bot (#3420) NaeNate 2022-08-22 13:57:44 +02:00
SECURITY.md Update Links to Use New Org Name (#3327) 2022-07-09 14:14:42 +02:00
THEMES.md fix basic typos (#3235) 2022-06-26 12:41:55 +02: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.