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
dependabot[bot] ae9c3ca003
chore(deps-dev): bump vitest from 2.0.5 to 2.1.9 (#6242)
Bumps
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)
from 2.0.5 to 2.1.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitest-dev/vitest/releases">vitest's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.9</h2>
<p>This release includes security patches for:</p>
<ul>
<li><a
href="https://github.com/vitest-dev/vitest/security/advisories/GHSA-8gvc-j273-4wm5">Browser
mode serves arbitrary files | CVE-2025-24963</a></li>
<li><a
href="https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq">Remote
Code Execution when accessing a malicious website while Vitest API
server is listening | CVE-2025-24964</a></li>
</ul>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>backport <a
href="https://redirect.github.com/vitest-dev/vitest/issues/7317">vitest-dev/vitest#7317</a>
to v2 - by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/pull/7318">vitest-dev/vitest#7318</a></li>
<li>(backport <a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7340">#7340</a>
to v2) restrict served files from <code>/__screenshot-error</code> - by
<a href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/pull/7343">vitest-dev/vitest#7343</a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v2.1.8...v2.1.9">View
changes on GitHub</a></h5>
<h2>v2.1.8</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>Support Node 21  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> <a
href="https://github.com/vitest-dev/vitest/commit/92f7a2ad"><!-- raw
HTML omitted -->(92f7a)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v2.1.7...v2.1.8">View
changes on GitHub</a></h5>
<h2>v2.1.7</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>Revert support for Vite 6  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> <a
href="https://github.com/vitest-dev/vitest/commit/fbe5c39d"><!-- raw
HTML omitted -->(fbe5c)<!-- raw HTML omitted --></a>
<ul>
<li>This introduced some breaking changes (<a
href="https://redirect.github.com/vitest-dev/vitest/issues/6992">vitest-dev/vitest#6992</a>).
We will enable support for it later. In the meantime, you can still use
<code>pnpm.overrides</code> or yarn resolutions to override the
<code>vite</code> version in the <code>vitest</code> package - the APIs
are compatible.</li>
</ul>
</li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v2.1.6...v2.1.7">View
changes on GitHub</a></h5>
<h2>v2.1.6</h2>
<h2>🚀 Features</h2>
<ul>
<li>Support Vite 6</li>
</ul>
<h5>    <a
href="https://github.com/vitest-dev/vitest/compare/v2.1.5...v2.1.6">View
changes on GitHub</a></h5>
<h2>v2.1.5</h2>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li><code>dangerouslyIgnoreUnhandledErrors</code> without base reporter
 -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/6808">vitest-dev/vitest#6808</a>
<a href="https://github.com/vitest-dev/vitest/commit/0bf0ab00"><!-- raw
HTML omitted -->(0bf0a)<!-- raw HTML omitted --></a></li>
<li>Capture <code>unhandledRejection</code> even when base reporter is
not used  -  by <a
href="https://github.com/AriPerkkio"><code>@​AriPerkkio</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/6812">vitest-dev/vitest#6812</a>
<a href="https://github.com/vitest-dev/vitest/commit/8878b04d"><!-- raw
HTML omitted -->(8878b)<!-- raw HTML omitted --></a></li>
<li>Don't change the working directory when loading workspace projects
 -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/6811">vitest-dev/vitest#6811</a>
<a href="https://github.com/vitest-dev/vitest/commit/f0aeaca8"><!-- raw
HTML omitted -->(f0aea)<!-- raw HTML omitted --></a></li>
<li>Remove <code>sequence.concurrent</code> from the
<code>RuntimeConfig</code> type  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/6880">vitest-dev/vitest#6880</a>
<a href="https://github.com/vitest-dev/vitest/commit/6af73d93"><!-- raw
HTML omitted -->(6af73)<!-- raw HTML omitted --></a></li>
<li>Stop the runner before restarting, restart on workspace config
change  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/6859">vitest-dev/vitest#6859</a>
<a href="https://github.com/vitest-dev/vitest/commit/b01df47d"><!-- raw
HTML omitted -->(b01df)<!-- raw HTML omitted --></a></li>
<li>Don't rerun on Esc or Ctrl-C during watch filter  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/6895">vitest-dev/vitest#6895</a>
<a href="https://github.com/vitest-dev/vitest/commit/98f76ea7"><!-- raw
HTML omitted -->(98f76)<!-- raw HTML omitted --></a></li>
<li>Print ssrTransform error  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/6885">vitest-dev/vitest#6885</a>
<a href="https://github.com/vitest-dev/vitest/commit/4c96cce7"><!-- raw
HTML omitted -->(4c96c)<!-- raw HTML omitted --></a></li>
<li>Throw an error and a warning if <code>.poll</code>,
<code>.element</code>, <code>.rejects</code>/<code>.resolves</code>, and
<code>locator.*</code> weren't awaited  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/6877">vitest-dev/vitest#6877</a>
<a href="https://github.com/vitest-dev/vitest/commit/93b67c24"><!-- raw
HTML omitted -->(93b67)<!-- raw HTML omitted --></a></li>
<li><strong>browser</strong>:
<ul>
<li>Don't process the default css styles  -  by <a
href="https://github.com/sheremet-va"><code>@​sheremet-va</code></a> in
<a
href="https://redirect.github.com/vitest-dev/vitest/issues/6861">vitest-dev/vitest#6861</a>
<a href="https://github.com/vitest-dev/vitest/commit/0d67f04b"><!-- raw
HTML omitted -->(0d67f)<!-- raw HTML omitted --></a></li>
<li>Support non US key input  -  by <a
href="https://github.com/hi-ogawa"><code>@​hi-ogawa</code></a> in <a
href="https://redirect.github.com/vitest-dev/vitest/issues/6873">vitest-dev/vitest#6873</a>
<a href="https://github.com/vitest-dev/vitest/commit/5969d8da"><!-- raw
HTML omitted -->(5969d)<!-- raw HTML omitted --></a></li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c9e59a089d"><code>c9e59a0</code></a>
chore: release v2.1.9</li>
<li><a
href="e0fe1d81e2"><code>e0fe1d8</code></a>
fix: backport <a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7317">#7317</a>
to v2 (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/7318">#7318</a>)</li>
<li><a
href="d69cc75698"><code>d69cc75</code></a>
bump: 2.1.8</li>
<li><a
href="92f7a2ad18"><code>92f7a2a</code></a>
fix: support Node 21</li>
<li><a
href="81ed45b3a4"><code>81ed45b</code></a>
chore: release v2.1.7</li>
<li><a
href="fbe5c39d88"><code>fbe5c39</code></a>
fix: revert support for Vite 6</li>
<li><a
href="b936702deb"><code>b936702</code></a>
bump: 2.1.6</li>
<li><a
href="32f23b98b4"><code>32f23b9</code></a>
chore: release v2.1.5</li>
<li><a
href="417bdb423d"><code>417bdb4</code></a>
fix(browser): init browsers eagerly when tests are running (<a
href="https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest/issues/6876">#6876</a>)</li>
<li><a
href="93b67c24b1"><code>93b67c2</code></a>
fix: throw an error and a warning if <code>.poll</code>,
<code>.element</code>, <code>.rejects</code>/`.resolv...</li>
<li>Additional commits viewable in <a
href="https://github.com/vitest-dev/vitest/commits/v2.1.9/packages/vitest">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vitest&package-manager=npm_and_yarn&previous-version=2.0.5&new-version=2.1.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/monkeytypegame/monkeytype/network/alerts).

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Christian Fehmer <cfe@sexy-developer.com>
2025-02-08 13:53:20 +01:00
.github ci: move prettier to its own workflow (@miodec) (#6198) 2025-01-27 13:47:48 +01:00
.husky chore: update master pre-push script 2024-07-25 11:13:25 +02:00
.vscode chore: remove TS nightly from the list of recommended extensions 2024-11-19 12:35:04 +01:00
backend chore(deps-dev): bump vitest from 2.0.5 to 2.1.9 (#6242) 2025-02-08 13:53:20 +01:00
docker refactor(build): optimize dockerfiles (@ilolm) (#5955) 2024-10-09 12:37:08 +02:00
docs chore: switch from npm to pnpm (#5690) 2024-07-30 22:36:19 +02:00
frontend chore(deps-dev): bump vitest from 2.0.5 to 2.1.9 (#6242) 2025-02-08 13:53:20 +01:00
packages chore(deps-dev): bump vitest from 2.0.5 to 2.1.9 (#6242) 2025-02-08 13:53:20 +01:00
.dockerignore chore: update backend out dir 2024-07-25 19:59:05 +02:00
.editorconfig Add .editorconfig (#1976) 2021-10-10 16:09:32 +01:00
.eslintignore chore: fix tests using machine timezone (@fehmer) (#5740) 2024-08-08 12:10:11 +02:00
.gitignore refactor: restructure project to a true monorepo (#5626) 2024-07-22 15:08:11 +02:00
.npmrc chore: switch from npm to pnpm (#5690) 2024-07-30 22:36:19 +02:00
.nvmrc chore: upgrade node to 20.16.0 (#5688) 2024-07-30 18:44:35 +02:00
.prettierignore feat(languages): add portuguese 320k and 550k (@jeffersonjpr) (#5698) 2024-08-02 14:13:31 +02:00
.prettierrc TypeScript FrontEnd: Add Account Files (#2494) 2022-02-19 17:44:27 +01:00
commitlint.config.cjs chore: update file extension 2024-07-22 16:58:49 +02:00
LICENSE Create LICENSE 2020-05-30 00:30:54 +01:00
monkeytype.code-workspace refactor: update setting automaticallyOpenTestResults in workspace file (@fehmer) (#6232) 2025-02-04 11:02:58 +01:00
package.json chore(deps-dev): bump vitest from 2.0.5 to 2.1.9 (#6242) 2025-02-08 13:53:20 +01:00
pnpm-lock.yaml chore(deps-dev): bump vitest from 2.0.5 to 2.1.9 (#6242) 2025-02-08 13:53:20 +01:00
pnpm-workspace.yaml chore: switch from npm to pnpm (#5690) 2024-07-30 22:36:19 +02:00
README.md chore: add more badges to readme (@fehmer) (#5744) 2024-08-08 17:06:50 +02:00
turbo.json fix(dev): mark dev tasks as persistent 2024-08-14 12:36:21 +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 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.