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
Seif Soliman e5b0978d4e
fix(settings): ensure themes UI is always up-to-date when renavigating (@byseif21) (#6581)
### Description
When (changing / adding or removing themes from favorite ) via command
line or from the current theme button "in page e.g test page" and then
navigating to Settings > Themes, the UI does not immediately reflect the
current theme changes . The user has to manually refresh the page to see
these changes.

**Now**
 UI automatically refreshes
to reflect the current theme selection and favorites without requiring
a manual page refresh.

- Added refreshThemeUI function in theme-picker.ts that updates all
  theme-related UI components
- Called this refresh function in the settings page's beforeShow
lifecycle hook to ensure the theme UI is always up-to-date when the page
is displayed.


**FOR TESTING BEFORE & AFTER:**
keep changing themes then navigate to the settings and check and keep
doing those things again to verify that the active theme and favorites
update.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-07-27 19:43:43 +02:00
.github refactor(schema): move font config to schema (@fehmer) (#6780) 2025-07-26 13:34:03 +02:00
.husky
backend chore(deps): upgrade oxlint to 1.8.0, fix errors (@camc314) (#6776) 2025-07-24 14:32:12 +02:00
docker docs(example.env): improve clarity of docker/example.env config for self-hosting (@nitin-is-me) (#6777) 2025-07-25 14:15:33 +02:00
docs refactor(schema): move font config to schema (@fehmer) (#6780) 2025-07-26 13:34:03 +02:00
frontend fix(settings): ensure themes UI is always up-to-date when renavigating (@byseif21) (#6581) 2025-07-27 19:43:43 +02:00
packages feat(language): add ABAP programming language (@hottek) (#6784) 2025-07-27 19:37:30 +02:00
.dockerignore
.editorconfig
.eslintignore fix(docker): fix configuration endpoint, add configuration export (@fehmer) (#6317) 2025-02-27 10:48:59 +01:00
.gitignore chore: add sentry 2025-04-29 17:36:23 +02:00
.npmrc
.nvmrc
.prettierignore feat(languages): add portuguese 320k and 550k (@jeffersonjpr) (#5698) 2024-08-02 14:13:31 +02:00
.prettierrc
commitlint.config.cjs
LICENSE
monkeytype.code-workspace feat(settings): add deep links to specific sections (@fehmer) (#6661) 2025-07-01 20:46:43 +02:00
package.json refactor(schema): move font config to schema (@fehmer) (#6780) 2025-07-26 13:34:03 +02:00
pnpm-lock.yaml chore(deps): upgrade oxlint to 1.8.0, fix errors (@camc314) (#6776) 2025-07-24 14:32:12 +02:00
pnpm-workspace.yaml
README.md docs: order oxlint badge correctly (@fehmer) (#6470) 2025-04-19 13:33:09 +02:00
turbo.json chore: only add sentry plugin when building from release package 2025-04-30 14:13:51 +02:00
vitest.config.js chore: fix test coverage not working with vitest workspaces (@fehmer) (#5764) 2024-08-11 17:50:26 +02:00
vitest.workspace.json chore: add vitest workspace configuration file 2024-08-11 00:14:39 +02:00


ChartJs Eslint Express Firebase Fontawesome HTML5 JQuery MongoDB OXLint PNPM Redis SASS TsRest Turborepo TypeScript Vite Vitest Zod

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.

Security

To report a security vulnerability, please refer to SECURITY.md.

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.