Skip to content

samuraisatoshi/typeSpeed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

19 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ TypeSpeed - Code Typing Practice for Programmers

License: MIT JavaScript PRs Welcome

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.

TypeSpeed Demo

โœจ Features

  • ๐Ÿ“ 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

๐Ÿš€ Quick Start

Option 1: Direct Browser (Easiest)

  1. Download or clone this repository
  2. Open index.html in your browser
  3. Select a folder with code files
  4. 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

Option 2: Local Server (Avoids Browser Dialogs)

# Using Python
python3 -m http.server 8000

# Using Node.js
npx http-server -p 8000

# Using PHP
php -S localhost:8000

Then open http://localhost:8000

๐ŸŽฎ How to Use

  1. Select Your Code - Click "Select Code Folder" and choose a directory with source files
  2. Start Typing - Click "Start Typing" to begin with a random code snippet
  3. Type Away - Follow the highlighted code, typing exactly as shown
  4. Track Progress - Watch your WPM and accuracy in real-time
  5. View Stats - Check the Statistics tab to see your improvement over time

Pro Tips

  • 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

๐Ÿ—๏ธ Architecture

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

๐Ÿ”’ Privacy & Security

  • 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

๐Ÿ› ๏ธ Customization

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

๐Ÿ“ License

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.

๐Ÿ‘จโ€๐Ÿ’ป Author

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

๐Ÿ’ Support Development

If TypeSpeed helps your coding practice, consider supporting development:

  • XRP: rn43CJP86tG1LikfynhTARmWYDrkEGYyKH
  • BTC: bc1qyf0n6x0fvukk5dz59ywrj5drzvpthpz3r4hgx0

๐Ÿค Contributing

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

๐Ÿ› Known Issues

  • 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

๐Ÿ“š Resources

๐Ÿ™ Acknowledgments

  • 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

About

TypeSpeed - Code Typing Practice for Programmers ๐Ÿš€ Practice typing with real code from your projects. Like MonkeyType but for developers! Features: 25+ language support, smart code selection, WPM/accuracy tracking, session statistics, 100% offline. Built with Domain-Driven Design+SOLID principles. No data collection.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors