Practice typing with real code from your projects! TypeSpeed is like MonkeyType but specifically designed for developers. Load your own source code and practice typing actual functions, algorithms, and syntax from 25+ programming languages.
- ๐ Your Code, Your Practice - Select any folder with source code to practice with real projects
- ๐ฏ Smart Code Selection - Intelligent snippet selection that focuses on actual code, not comments
- ๐ 25+ Languages - Support for JavaScript, Python, Java, C++, Rust, Go, Ruby, and more
- ๐ Real-time Metrics - Track WPM, accuracy, and progress as you type
- ๐ Statistics Tracking - Monitor your improvement over time with detailed session history
- ๐ 100% Private - Runs entirely offline in your browser, no data collection
- ๐จ Beautiful UI - Modern dark theme with syntax highlighting
- โก No Installation - Just open the HTML file and start practicing
- Download or clone this repository
- Open
index.htmlin your browser - Select a folder with code files
- Start typing!
git clone https://github.com/yourusername/typespeed.git
cd typespeed
open index.html # macOS
# or
start index.html # Windows
# or
xdg-open index.html # Linux# Using Python
python3 -m http.server 8000
# Using Node.js
npx http-server -p 8000
# Using PHP
php -S localhost:8000Then open http://localhost:8000
- Select Your Code - Click "Select Code Folder" and choose a directory with source files
- Start Typing - Click "Start Typing" to begin with a random code snippet
- Type Away - Follow the highlighted code, typing exactly as shown
- Track Progress - Watch your WPM and accuracy in real-time
- View Stats - Check the Statistics tab to see your improvement over time
- Leading spaces/tabs are auto-skipped - focus on the actual code
- Use "New Snippet" to get different code samples
- Sessions are saved locally for progress tracking
- Delete individual sessions or clear all to start fresh
TypeSpeed is built with Domain-Driven Design (DDD) and SOLID principles:
js/
โโโ domain/ # Core business logic
โ โโโ TypingSession.js # Session management
โ โโโ CodeFileRepository.js # File storage
โ โโโ Statistics.js # Performance tracking
โ โโโ CodeSnippetSelector.js # Smart code selection
โโโ application/ # Application services
โ โโโ TypingApp.js # Main orchestrator
โ โโโ UIController.js # UI state management
โโโ infrastructure/ # Technical implementation
โโโ InputHandler.js # Keyboard input handling
- No Data Collection - Your code never leaves your computer
- No Internet Required - Works 100% offline
- No Analytics - Zero tracking or telemetry
- Local Storage Only - Statistics saved in browser localStorage
- Open Source - Inspect the code yourself
TypeSpeed is designed to be easily extended. Feel free to:
- Add new language support
- Customize the UI theme
- Add new metrics or statistics
- Integrate with your tools
This project is open source and free to use under the MIT License.
You are free to:
- Use it commercially or personally
- Modify and customize it
- Distribute it
- Include it in your projects
The only requirement: Please keep the original author attribution.
Original Author: SamuraiSatoshi
Created with โค๏ธ for the developer community. If you find this tool useful, consider:
- โญ Starring this repository
- ๐ด Forking and contributing
- ๐ข Sharing with other developers
If TypeSpeed helps your coding practice, consider supporting development:
- XRP:
rn43CJP86tG1LikfynhTARmWYDrkEGYyKH - BTC:
bc1qyf0n6x0fvukk5dz59ywrj5drzvpthpz3r4hgx0
Contributions are welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
- Improve documentation
Please ensure:
- Code follows the existing DDD architecture
- SOLID principles are maintained
- Files stay under 550 lines
- Original author attribution remains
- Browser shows "upload files" dialog when selecting folders (this is normal browser behavior - your files are NOT uploaded anywhere)
- For best experience, use a local server to avoid browser security dialogs
- Inspired by MonkeyType
- Built with vanilla JavaScript for maximum compatibility
- Community feedback and contributions
Remember: Keep practicing, and your code typing speed will improve dramatically! ๐
Made with passion by SamuraiSatoshi