Project
Roulette

Typing Race

Type the passage, watch WPM and accuracy move in real time.

BeginnerWeb appEducation5–12hAI-buildable 5/5no setupworth shipping

A typing test with live per-character feedback, running WPM, and an accuracy figure that counts corrections honestly. The subtlety is in what counts as an error and how WPM is actually defined — most implementations quietly flatter the user.

UI
Logic
Useful

Hosting · Free forever

Deploys free on GitHub Pages, Cloudflare Pages or Vercel Hobby.

Deploy it and share a link.

Core features · 7

  • A passage displays with the current character highlighted
  • Characters colour as correct or incorrect while typing
  • WPM and accuracy update live
  • Backspace corrections are handled and counted consistently
  • The test ends at the passage end or on a timer
  • A results screen shows WPM, accuracy and error positions
  • Results persist so progress is visible over time

The interesting part

  • Defining WPM consistently, since gross and net differ substantially
  • Deciding whether a corrected character still counts as an error
  • Keeping the caret and scroll position stable in a long passage

Once it works

  • Add a per-key accuracy heat map
  • Add difficulty tiers by passage complexity
  • Add a ghost replay racing your previous best

Suggested stack

reacttypescripttailwindlocalstorage

Track it