A Monkeytype-inspired typing practice application with keystroke analytics.
- Multiple Themes: Dark, Light, Ocean, Forest, Sunset
- Real-time Stats: Live WPM, accuracy, and time tracking
- Analytics: Detailed breakdown of typing performance
- Charts: WPM over time, per-key latency visualization
- Insights: AI-powered suggestions for improvement
- Keyboard Shortcuts: Tab for new text, Esc to restart
# Clone the repo
git clone https://github.com/DragoVeizen/Keylytics-Web.git
cd Keylytics-Web
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the server
uvicorn app:app --reload
# Open http://localhost:8000docker build -t keylytics-web .
docker run -p 8000:8000 keylytics-web- Click the button above
- Connect your GitHub account
- Select this repository
- Deploy!
- Create a new Web Service on Render
- Connect your GitHub repository
- Render will auto-detect the
render.yamlconfiguration - Deploy!
This is a Python backend app, so you'll need a platform that supports Python (Railway, Render, Fly.io, etc.)
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Main typing interface |
/api/text |
GET | Get random text to type |
/api/texts |
GET | Get all available texts |
/api/analyze |
POST | Analyze typing session |
Switch themes using the theme dots in the header:
- Dark - Classic dark mode (default)
- Light - Clean light mode
- Ocean - Deep blue tones
- Forest - Natural green tones
- Sunset - Warm pink/purple tones
- Backend: FastAPI, Python
- Frontend: Vanilla JS, Chart.js
- Analytics: Custom keystroke analysis engine
- Styling: Pure CSS with CSS variables for theming
MIT