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
Jack 6b49a3c5e7
v1.14.1 (#2745)
* updated default config to fix incorrect font button being highlighted

* Convert account controller to ts (#2731)

* using modular sdk

* removing last script

* replacing more code

* unused code

* removed unused code

* removed unused code

* importing auth

* using analytics controller

* importing auth and analytics

* importing auth

* updated git ignore

* fixed path

* removed live config from gitignore

* added error message when failing to initialize firebase

* added live config
using live config when building production

* removed unused code

* fixed incorrect function use

* added example config

* added a step to the contributing guide

* optional steps

* fixed path

* using example in source code so that github actions dont cry like little babies

* using function correctly

* using function correctly

* ignoring live

* removed

* added action webpack config

* bruce said "no-no"

This reverts commit 0a1e5e1660.

* Fix

* Add ignore

* updated instructions

* using correct functions

* using correct function

* missing parameter

* using correct function

* using correct function

* removed ts ignores

* using new functions

* removed refresh

* using new functions

* merge fix

* fixed merge

* regenereated lockfile

* using correct function

* defaulting to the email thats already entered

* storing default snap in a file

* optional parameter

* made parameters non optional

* converted file to ts

* removed unused parameters

* removed unnecessary optional chaining

* destructuring array

* added a function to create error message

* removed type

* removed duplicate gitignore

* removed no check

Co-authored-by: Bruception <bberr022@fiu.edu>

* Include dev branch in CI (#2739)

* Decreased filesize and introduced chunk splitting (#2732) Rizwanmustafa

* Decreased filesize

* Introduce splitting for vendors

* Added HTML webpack plugin for dynamic change of chunkhash and minification on production

* Added bundle analyzer plugin for webpack

* Prevent analyzer from opening on its own

* updated contributors list

* Package lock update

* Created separate webpack config for analysing bundle

* Standardize paths in webpack base config

* Added devtool in dev webpack config

* Minor issues

* Based audit config off of the production config, saved exact packages and renamed some constants

* Saved exact version of packages

* Rename Config

* Added intellisense for webpack configs

* Added script for using audit config

* Simple changes

* Removed unnecessary cd and replaced webpack with npx wepback

* added npm script accessible from root dir
since audit is now a separate script, reenabled auto opening

Co-authored-by: Miodec <bartnikjack@gmail.com>

* Enable live reloading (#2738) bruception

* Enable live reloading

* Update scripts and documentation

* Fix resolve

* Use resolve

* Fix layoutfluid timer warnings (#2740) Ferotiq

* reduced date-fns import size

* using inline source map so that code is debuggable

* removed tinycolor2 dependency

* Migrate Chart.js to 3.7.1 (#2735) DanGonite57

* Migrate Chart.js to 3.7.1

* Show funbox label with StartGraphsAtZero disabled

* Fix label positioners

* Include dev branch in CI (#2739)

* Remove draw animation

* Avoid RangeError with no data

* Disable account chart initial render animation

* Add temporary type assertion for options.animation

* Test disabling animations via updateColors

* Test re-update chart after resetting animation duration

* Test dataset specific animation duration

* Disable animations for now

* Remove unused annotation

Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com>

* installed dev dependency to stop audit from complaining

* removed mr mime dev dependency
regenerate package-lock

* not updating live burst when its disabled

* using vanilla js to increase performance

* updating chart once instead of 3 times

* made log async

* increased minimum wordset length to disable repeating words to 4
this stops infinite A B C sequences
closes #2742

* increased tick padding

* added some padding to stop data points from being cut off

* fixed account graphs not being responsive

* removed unnecessary style

* updated button active color

* Server version (#2746) Bruception

* Add server version

* typo

* Fix logic

* Moved to utility

* Actually save version

* Move logic order

* updated metric name

* removed unnecessary else

Co-authored-by: Bruception <bberr022@fiu.edu>
Co-authored-by: Bruce Berrios <58147810+Bruception@users.noreply.github.com>
Co-authored-by: Rizwan Mustafa <rizwanmustafa0000@gmail.com>
Co-authored-by: Evan <64989416+Ferotiq@users.noreply.github.com>
Co-authored-by: DanGonite57 <danzinc57@gmail.com>
2022-03-21 21:22:47 +01:00
.github Include dev branch in CI (#2739) 2022-03-20 11:31:51 -05:00
backend v1.14.1 (#2745) 2022-03-21 21:22:47 +01:00
bin Fix (#2550) 2022-02-20 22:29:39 +01:00
frontend v1.14.1 (#2745) 2022-03-21 21:22:47 +01: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 Moved firebase to new modular version 9 sdk (#2727) 2022-03-19 12:33:25 +01:00
.gitignore v1.14.1 (#2745) 2022-03-21 21:22:47 +01:00
.npmrc Add .nvmrc file and updated Node.js installation instructions (#1968) by mtthwn 2021-10-13 19:44:20 +01:00
.nvmrc chore: updated node/npm versions (#2440) 2022-02-08 00:28:56 +01:00
.prettierignore Api overhaul (#2555) by Bruception 2022-02-22 20:55:48 +01: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 (#1964) 2021-10-07 14:28:08 +01:00
CONTRIBUTING.md v1.14.1 (#2745) 2022-03-21 21:22:47 +01:00
LANGUAGES.md Documentation edits (#2675) 2022-03-11 19:32:55 -06:00
LICENSE Create LICENSE 2020-05-30 00:30:54 +01:00
old_js.eslintrc.json Moved firebase to new modular version 9 sdk (#2727) 2022-03-19 12:33:25 +01:00
package-lock.json Remove unused packages (#2724) 2022-03-17 21:49:34 +01:00
package.json v1.14.1 (#2745) 2022-03-21 21:22:47 +01:00
QUOTES.md v1.14.1 (#2745) 2022-03-21 21:22:47 +01:00
README.md Documentation edits (#2675) 2022-03-11 19:32:55 -06:00
SECURITY.md Documentation edits (#2675) 2022-03-11 19:32:55 -06:00
THEMES.md Documentation edits (#2675) 2022-03-11 19:32:55 -06:00


JavaScript TypeScript HTML5 CSS3 CSS3

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/Miodec/monkey-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.