Skip to content

Repository files navigation

KeyType logo

KeyType

A distraction-free, offline-first typing speed test. Measure WPM and accuracy in 15, 30, 60, or 120 second tests — no account, no ads, no noise.

keytypetest.birajsarkar67.workers.dev  ·  GitHub


Stack

React 19 TypeScript 5 Vite 6 Tailwind v4 Cloudflare Workers PWA


Features

  • Live stats — WPM, raw WPM, and accuracy update in real time
  • Four test durations — 15, 30, 60, and 120 seconds
  • Offline-first PWA — fully functional after first load, installable on desktop
  • Result history — last 50 results persisted to localStorage
  • Zero backend — no auth, no network fetches, no database
  • Keyboard-first — Tab restarts, Esc cancels, Enter continues from results

Development

npm install
npm run dev

Build & Deploy

npm run build          # TypeScript check + Vite production build → dist/
npm run deploy         # build + wrangler deploy to Cloudflare Workers

Project Structure

src/
├── components/        # Presentational UI components
├── hooks/             # useTypingEngine, useTimer, usePageMeta
├── lib/               # Pure stat functions, localStorage helpers
├── data/              # Static word pool (~1000 words)
├── pages/             # Route-level page components
└── types/             # Shared TypeScript types

License

Licensed under the Apache License 2.0.

Contributors

Languages