Typing Master Fun— Live Demo
A fast, polished typing practice game built with React and Vite. Train your speed and accuracy, earn XP, level up, unlock achievements, and track progress—all in the browser with no account required. Everything runs client-side; no server or account is required.
- Timed practice sessions (15s, 30s, 60s, 120s)
- Multiple content modes: fun words, tech terms, quotes, and more
- Real-time WPM, accuracy, and mistake tracking
- XP, levels, streaks, and achievements (saved in
localStorage) - Keyboard heatmap and optional sound effects
- Responsive dark UI with smooth animations
npm install
npm run devOpen the URL shown in the terminal (usually http://localhost:5173).
Other commands:
npm run build # production bundle → dist/
npm run preview # serve the production build locally
npm run lint # ESLintnpm run buildThe production files land in dist/. Preview them locally:
npm run previewYou can also serve dist/ with any static file server, or open dist/index.html in a browser. Asset paths use a relative base (./ in vite.config.js), so the build works from a folder path without extra configuration.
The site is published from the docs/ folder (built static files), not the repo root.
- Settings → Pages → Build and deployment → Source: Deploy from a branch → Branch:
main→ Folder:/docs - Pushes to
mainrun.github/workflows/deploy.yml, which rebuilds and updatesdocs/.
Site URL: https://arundidauli.github.io/typing-practice/
Do not use the repo root (/) as the Pages folder — that serves dev index.html and causes a blank page (/src/main.jsx 404).
src/
components/ # UI (TypingArea, ResultScreen, DashboardCards, …)
hooks/ # Game state and persistence (useTypingGame, useStats, …)
data/ # Word banks, achievements, levels
utils/ # XP, sound, celebrations
public/ # Static assets (favicon, icons)
MIT — use and modify freely.