A minimalist code typing speed test for developers. Practice typing real code snippets across 12 programming languages — right in your browser.
- 12 languages — JavaScript, Python, TypeScript, Java, HTML, CSS, C++, Go, Rust, C#, PHP, SQL
- Two modes — timed (15 / 30 / 60 / 120s) or snippet-based (5 / 10 / 15 lines)
- Real code snippets — actual algorithms, data structures, and patterns
- Live stats — CPM, accuracy, errors, and time tracked as you type
- Smart Tab skip — press Tab to jump over whitespace after punctuation
- Dark / Light theme — toggleable, persisted in localStorage
- No dependencies — pure HTML, CSS, and vanilla JavaScript
Clone and open
index.htmlin your browser — no build step required.
git clone https://github.com/csharpmf/codetype.git
cd codetype
open index.htmlThat's it. No npm install, no bundler, no server needed.
- Pick a mode —
timeto race the clock,codeto finish a full snippet - Choose a duration or line count and a language
- Click the code area (or just start typing) to begin
- Type the displayed code as fast and accurately as possible
- Press Tab after punctuation (
;,,,),}) to auto-skip leading whitespace on the next line - Results appear instantly when time runs out or the snippet is completed
- Press restart (or change any setting) to go again
| Stat | Description |
|---|---|
| CPM | Net characters per minute (correct chars only) |
| Accuracy | Percentage of correct keystrokes |
| Errors | Peak number of simultaneous wrong characters |
| Time | Total elapsed time in seconds |
codetype/
├── index.html # Markup & layout
├── styles.css # Theming, animations, responsive styles
└── script.js # Game logic, snippets, stats engine
Open script.js and find the codeSnippets object. Add a new string to any language array:
javascript: [
// existing snippets...
`function yourNewSnippet() {\n // your code here\n}`
]To add a new language, add a new key with at least one snippet, then add a matching <button> in index.html inside the language config group.
Colors are defined as CSS variables in :root (dark) and body.light-theme (light):
--bg-color: #323437;
--sub-color: #646669;
--text-color: #d1d0c5;
--main-color: #e2b714; /* accent / caret / correct */
--error-color: #ca4754;Change these to create your own color scheme.
MIT — use it for what you want.
Built for developers who want to type code, not lorem ipsum.
Preview: codetype