General Questions
What is Monkeytype?
What is Monkeytype?
- Multiple test modes (time-based, word count, quotes)
- Real-time WPM, accuracy, and error tracking
- Customizable themes and settings
- Account system to save your history
- Natural typing experience with live feedback
How does the typing test work?
How does the typing test work?
- Characters appear in place as you type them
- Errors are highlighted in real-time
- Your WPM (words per minute) and accuracy are calculated live
- Results are displayed when you complete the test
Is Monkeytype free to use?
Is Monkeytype free to use?
Do I need an account to use Monkeytype?
Do I need an account to use Monkeytype?
- Save your typing speed history
- Track your progress over time
- Sync settings across devices
- Participate in leaderboards
- Complete and track challenges
- Access advanced features and customization
Test Modes and Features
What test modes are available?
What test modes are available?
- Time-based tests (15s, 30s, 60s, 120s)
- Custom time lengths
- Word tests (10, 25, 50, 100 words, etc.)
- Quote tests (short, medium, long quotes)
- Custom text
- Punctuation mode
- Numbers mode
- Multiple languages
- Various difficulty levels
What are Funbox modifiers?
What are Funbox modifiers?
- Different visual effects
- Modified typing rules
- Challenge modes
- Special constraints
What languages are supported?
What languages are supported?
Can I practice with punctuation and numbers?
Can I practice with punctuation and numbers?
- Punctuation mode: Adds punctuation marks to test your real-world typing scenarios
- Numbers mode: Includes numbers in the test text
Account and Data
How do I create an account?
How do I create an account?
- Click the account icon in the top navigation
- Choose your authentication method (Google, GitHub, etc.)
- Complete the authentication process
- Your account is ready to use
What data does Monkeytype store?
What data does Monkeytype store?
- Your typing test results and history
- Personal bests and statistics
- Custom settings and preferences
- Theme choices and configurations
- Challenge progress and completions
Is my data private and secure?
Is my data private and secure?
- Authentication is handled by Firebase
- Data is stored securely in encrypted databases
- The project follows security best practices
- For security concerns, see SECURITY.md
Can I delete my account and data?
Can I delete my account and data?
Can I export my typing data?
Can I export my typing data?
Customization
Can I customize the appearance?
Can I customize the appearance?
- Themes: Choose from hundreds of community-created themes
- Fonts: Select different font styles
- Caret style: Customize the cursor appearance
- Smooth caret: Enable smooth caret movement
- Layout: Adjust the test layout and spacing
- Colors: Use colorful mode or flip test colors
How do I create or contribute a theme?
How do I create or contribute a theme?
- Ensure your theme is unique and follows the Theme Guidelines
- Text color should be black or white (or very close)
- Theme must be readable with all display options
- Add your theme to the
_listfile - Submit a pull request
What keyboard layouts are supported?
What keyboard layouts are supported?
- QWERTY variants
- DVORAK
- COLEMAK
- And many more
Can I change sounds and effects?
Can I change sounds and effects?
- Typing sounds
- Click sounds
- Visual effects
- Smooth animations
- Focus mode (minimizes distractions)
Contributing
How can I contribute to Monkeytype?
How can I contribute to Monkeytype?
- Fix bugs
- Add features
- Improve performance
- Write tests
- Add themes
- Contribute quotes
- Add language support
- Create keyboard layouts
- Help others on Discord
- Report bugs
- Suggest features
- Write documentation
I want to add quotes or languages. How do I start?
I want to add quotes or languages. How do I start?
- Read CONTRIBUTING_BASIC.md
- Fork the repository on GitHub
- Make your changes using GitHub’s web interface
- Submit a pull request
I want to contribute code. What do I need?
I want to contribute code. What do I need?
- Read CONTRIBUTING_ADVANCED.md
- Set up a local development environment
- Familiarize yourself with the tech stack (TypeScript, Node.js, MongoDB, Firebase)
- Join the
#developmentchannel on Discord - Discuss your planned contribution
- Follow the coding standards and guidelines
What are the contribution guidelines?
What are the contribution guidelines?
- Follow the Code of Conduct
- Use Conventional Commits for PR titles
- Test your changes thoroughly
- Follow existing code style (uses Oxfmt and Oxlint)
- Provide clear descriptions in pull requests
- Be responsive to feedback and reviews
Technical Questions
What technologies does Monkeytype use?
What technologies does Monkeytype use?
- TypeScript
- Solid.js
- Vite
- Tailwind CSS
- SASS
- Node.js
- Express
- TypeScript
- MongoDB (user data)
- Firebase (authentication)
- Redis (ephemeral data, leaderboards)
- Turborepo (monorepo management)
- Oxc (Oxfmt and Oxlint for formatting/linting)
- Vitest (testing)
Can I self-host Monkeytype?
Can I self-host Monkeytype?
- Firebase account (for authentication)
- MongoDB (for data storage)
- Redis (for ephemeral data)
- Node.js environment
Is Monkeytype open source?
Is Monkeytype open source?
- Main repository: https://github.com/monkeytypegame/monkeytype
- Discord bot: https://github.com/monkeytypegame/monkeytype-bot
I found a bug. How do I report it?
I found a bug. How do I report it?
- Check if it’s already reported in GitHub Issues
- Create a new issue with:
- Clear description of the bug
- Steps to reproduce
- Expected vs. actual behavior
- Browser and OS information
- Screenshots if applicable
- Or email [email protected]
- For security issues, see SECURITY.md