59615fb02c
* wip * wip frontend * cleanup * wip * refactoring * wip * first working version * wip * update calendar with new result * add migration script * dates are hard * fix naming inconsistencies * requested changes on migration * timezones * update date-fns, use date-fns/utc * resolve cyclic dependency by extracting test activity calender into new file * cleanup * fix increment * fix * tests * test coverage * test migration * migration more logging * migration add unique index on uid if missing * update legend styling * 53 columns * wip * move dropdown and legend to the top add dropdown border yeet hotpink invisible filler boxes remove year from month format * responsive update * lowercase months * handle current year, fix tests * handle year change * make days square again * handle newly created users correctly * move css * add wrapper for easier styling rework some font sizes/widths reorder styles * media queries * align * rework styling once more * dont commit debug * add days full to fill the space a bit * show partial months * hover on 0 tests * start dynamic calendar on sunday * no activity * hover * remove label on fillers * remove label on fillers * fix months, update tests for months * adjust tests to new requirements * cleanup * fix migration * impr(commandline): add "add/remove quote to favorites" commands closes #5368 * chore: remove daily lb which is no longer in the backend * fix: dropdown element flashing for couple frames on page load * feat(language): add japanese romaji 1k (nthngnssmnnglss) * fix: optional chaining !nuf * fix(words generator): infinite custom text tests not working correctly * chore: missing languages in list and group files * fix(language): remove duplicates !nuf * add readline sync to confirm * gh action complaints * unnecessary check * premium only * add years to drop down only if premium * Update setup-tests.ts * test fix * cleanup --------- Co-authored-by: Miodec <jack@monkeytype.com> |
||
---|---|---|
.github | ||
.husky | ||
.vscode | ||
backend | ||
bin | ||
docker | ||
frontend | ||
shared-types | ||
.dockerignore | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc | ||
.release-it-fe.json | ||
.release-it.json | ||
CODE_OF_CONDUCT.md | ||
commitlint.config.js | ||
CONTRIBUTING.md | ||
CONTRIBUTING_ADVANCED.md | ||
CONTRIBUTING_BASIC.md | ||
example.env | ||
LANGUAGES.md | ||
LICENSE | ||
monkeytype.code-workspace | ||
package-lock.json | ||
package.json | ||
QUOTES.md | ||
README.md | ||
SECURITY.md | ||
SELF_HOSTING.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 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.
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.