explaingit

monkeytypegame/monkeytype

Analysis updated 2026-05-18

19,985TypeScriptAudience · vibe coderComplexity · 3/5LicenseSetup · hard

TLDR

A customizable typing speed test website with real-time feedback, multiple test modes, account tracking, and themes. Practice typing and watch your words-per-minute improve over time.

Mindmap

mindmap
  root((Monkeytype))
    What it does
      Typing speed tests
      Real-time feedback
      Progress tracking
      Customizable modes
    Features
      Multiple languages
      Themes and cosmetics
      Sound effects
      Focus mode
    Test modes
      Time limits
      Word counts
      Quotes mode
      Challenges
    Tech stack
      TypeScript
      SolidJS frontend
      Express backend
      MongoDB
    Use cases
      Practice typing
      Track improvement
      Self-host instance
      Study web apps
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Practice typing and measure your words-per-minute to improve speed and accuracy over time.

USE CASE 2

Self-host your own typing test website with full customization of modes, themes, and test parameters.

USE CASE 3

Study a polished, real-time interactive web application with live feedback and account management.

USE CASE 4

Challenge yourself with different test modes like quotes, punctuation variants, and language-specific tests.

What is it built with?

TypeScriptSolidJSExpressMongoDBRedisFirebaseTurborepo

How does it compare?

monkeytypegame/monkeytypemicrosoft/fluentuiweb3/web3.js
Stars19,98519,97819,936
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardeasyeasy
Complexity3/52/53/5
Audiencevibe coderdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Multiple services required: MongoDB, Redis, Firebase config, and Express backend, Turborepo monorepo coordination adds complexity.

Use it freely, but any project you distribute that includes this code must also be GPL-licensed and open source.

In plain English

Monkeytype is a highly customizable typing speed test website. The premise is simple: text appears on screen and you type it as quickly and accurately as possible, then the site tells you your words per minute and accuracy. What distinguishes Monkeytype from simpler typing tests is the depth of customization and the quality of the feedback experience. While typing, it shows live error highlights, current speed, and accuracy in real time without interrupting your flow. The test offers a wide range of modes: different time limits, word counts, punctuation and number variants, quotes, and support for many languages. There is an account system that stores your typing history over time so you can track improvement. Cosmetically, users can select from many themes, adjust the cursor style, enable sound effects, and switch into a distraction-free focus mode. The site also includes challenges and novelty test modifiers for variety. The underlying tech stack is modern: TypeScript throughout, a SolidJS front end, an Express back end, MongoDB for data storage, Redis for caching, and Firebase for authentication. The whole project uses a monorepo structure managed with Turborepo. You would use Monkeytype if you want to practice typing and track your progress over time, or if you are a developer who wants to self-host a customizable typing test. It is also a good reference codebase for developers studying how to build a polished, interactive web application with a real-time feedback loop.

Copy-paste prompts

Prompt 1
How do I set up Monkeytype locally to self-host my own typing test instance?
Prompt 2
Show me how to add a custom theme or modify the styling in Monkeytype's frontend.
Prompt 3
How does Monkeytype calculate and display real-time words-per-minute and accuracy while typing?
Prompt 4
What's the best way to contribute a new typing test mode or language to Monkeytype?
Prompt 5
How can I export my typing history and statistics from Monkeytype for analysis?

Frequently asked questions

What is monkeytype?

A customizable typing speed test website with real-time feedback, multiple test modes, account tracking, and themes. Practice typing and watch your words-per-minute improve over time.

What language is monkeytype written in?

Mainly TypeScript. The stack also includes TypeScript, SolidJS, Express.

What license does monkeytype use?

Use it freely, but any project you distribute that includes this code must also be GPL-licensed and open source.

How hard is monkeytype to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is monkeytype for?

Mainly vibe coder.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub monkeytypegame on gitmyhub

Verify against the repo before relying on details.