Generate an SVG stats card for your Monkeytype profile to embed in your GitHub README.
Live at monkeytypecard.vercel.app
- Live data from the public Monkeytype API (personal bests, accuracy, time typing)
- 187 themes pulled straight from Monkeytype — with a visual color-swatch picker
- Searchable theme list and a random theme button
- Configurable time (15/30/60/120s) and word (10/25/50/100) modes
- Copy URL or Markdown to clipboard for easy embedding
- SVG output that works anywhere images are supported
Add this to your GitHub README (replace YOUR_USERNAME):
| Parameter | Default | Options |
|---|---|---|
username |
guest |
any Monkeytype username |
theme |
serika_dark |
any of the 187 themes |
timeValue |
15 |
15, 30, 60, 120 |
wordValue |
10 |
10, 25, 50, 100 |
/monkeytype.svg?username=punkk&theme=nord_light&timeValue=60&wordValue=50
- Python 3.10+
git clone https://github.com/YOUR_USERNAME/monkeytypecard.git
cd monkeytypecard
python -m venv venv
source venv/bin/activate
pip install flask requests python-dotenvcd src
python app.pyOpen http://localhost:5000 to use the card builder.
src/
app.py # Flask app, SVG generation, routes
services/
monkeytype.py # Monkeytype API client
static/
styles.css # Frontend styling
builder.js # Theme picker, preview, clipboard
themes.json # 187 Monkeytype themes
templates/
builder.html # Card builder UI
| Route | Description |
|---|---|
GET / |
Card builder UI |
GET /monkeytype.svg |
Generate SVG card (query params) |
GET /api/themes |
JSON list of available themes |
Deployed on Vercel free tier. For deployment instructions, see DEPLOY.md.
- Flask — web framework
- Monkeytype API — typing stats data
- Vanilla JS, CSS — no frontend frameworks
MIT