* Finishing logic * Numbers + layoutfluid * One interface * Filter results * tts error on undefined Extencions like NoScript can partly block scripts on the page. If speech synthesis is not loaded, notification shows up without freezing the page * Improved randomcase * Prevent dublicates in command line * Change filter logic * Prettier * Convert numbers * num * Quote and zen modes * withWords * Misc * Expand funboxes list for pb saving * Move list to backend * Move to constants * Async withWords, checkFunbox tweak * Prettier * Forbid nonexistent funboxes * Disable speech if language is ignored TtS's init() uses setLanguage() * canGetPb * Less circular imports * Ligatures typo * Simon says blocks word highlight * blockWordHighlight backend * Changed imports * usesLayout * JSON schema * IP funbox * Split * Display notification instead of reseting * canGetPB * One getWordHtml * Dividing properties * No sync * blockedModes * forcedConfig * Infinitness parameter, list sync * applyConfig, memory Remove extra applyConfig somewhere; Memory in quotes and custom modes * I lost this code after merging * Remove arrowKeys * isFunboxCompatible * Fix logic * sync canGetPb * remove FunboxObjectType * baloons * moved cangetpb function to pb utils * updated the pb check to be easier to understand * Refactor isFunboxCompatible * Check modes conflicts * Strict highlightMode type * Only one allowed or blocked highlight mode * More checks * Undefined only, not false * Prettier * Highlight modes * added intersect helper function * reworked forced config - storing allowed modes as an array, not string - first value will be used if config is outside of the allowed values - instead of checking if highlight mode is allowed, checking if the whole config is available - removed the "Finite" forced config and replaced it with "noInfiniteDuration" property - config event listener now checks every config change, not just highlight mode. this will ensure any future forced configs will work straight out of the box * ManualRestart in commandline * fixed funbox commands not correctly showing which funbox is active * Upd list * Merge * canGetPB for ip * Reduce list * split funbox into smaller files moved funbox files into its own folder * missing none command * added function to convert camel case to space separated words * changed config validation to be blocking the change rather than reacting to the change * reduced code duplication * allowing sub color flash * moved keymap key higlighting and flashing into an observable event * moved tts into a observable event * passing funbox into config validation funcitons * replaced getActive with get * only keeping functions structure in the list, moved the actual function bodies to funbox.ts done to remove a circular dependency still need to finish the rest of the funboxes * removed empty function definitions (typing issues) * removed unnecessary type * unnecessary check * moved mode checking to config validation * longer notification * checking funboxes before changing mode * moved more functions * fixed incorrect type * checking funboxes when setting punctuation and numbers * Rest of funboxes * fixed funbox commands showing tags text and icon * checking if funbox can be set with the current config * better error message * validating with setting time and words importing from a new file * added a function to capitalise the first letter of a string * using function from a new file new parameters * moved test length check to a function in a different file * moved some funbox validation into its own file * only showing notifications if the setWordCount returned true * moved funbox validation to its own file * setting manual restart when trying to set funbox to nonoe * moving this validation to before activating the funbox * returning forcedConfigs along side if current value is allowed moved infinite check to checkFunboxForcedConfigs * removed function, replaced by funox validation * removing duplicates * throwing if no intersection * wrong type * always allowing setting funbox sometimes it might be possible to update the config * checking forced configs first, and updating config if possible only setting funbox to none when couldnt update config * basic difficulty levels * xp funbox bonus * Delete old file * Difficulty level * removed console logs * renamed import, renamed type * lowercase b for consistency across the codebase * renamed variable for readability * renamed for clarity * converted metadata to object * changed from beforesubgroup on the command to before list on the subgroup * using code suggested by bruce * renamed type * removed console log * merch banner fix * important animation * updating the icon of "none" funbox command * removed unnecessary import * lowercase b * updated description Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Miodec <jack@monkeytype.com> |
||
|---|---|---|
| .github | ||
| .husky | ||
| backend | ||
| bin | ||
| frontend | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc.json | ||
| .gitignore | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| CONTRIBUTING_ADVANCED.md | ||
| CONTRIBUTING_BASIC.md | ||
| LANGUAGES.md | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| QUOTES.md | ||
| README.md | ||
| SECURITY.md | ||
| THEMES.md | ||
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.
