🚀 Getting Started
Select a practice mode from the dropdown menu and start typing to begin your session. The timer
starts automatically when you type your first character.
Quick Tips:
- New to typing? Start with TypeWell Original - Lowercase mode
- Want to practice code? Select any Programming Language from the dropdown
- Need a challenge? Try TypeWell Mode (no backspace allowed!)
⌨️ Basic Controls
- Type: Start typing to match the displayed content
- Backspace: Fix mistakes by pressing Backspace (Normal mode only)
- Enter: Press Enter for new lines (shown as ⏎ symbol)
- Spaces: Press Spacebar for spaces (incorrect ones display as ␣)
- Tabs: Shown as → and require Tab key press
Note: Japanese, Chinese, and Korean characters are automatically skipped during
typing practice.
📊 Understanding Statistics
- WPM (Words Per Minute): Typing speed calculated from correctly typed
characters. Formula: (characters / 5) / (time in minutes)
- Accuracy: Percentage of correct keystrokes out of total keystrokes
- Progress: Shows current position / total characters (e.g., "125/500")
- Timer: Elapsed time since first keystroke
- Mistakes: Tracked per-character for detailed analysis
🎮 Practice Modes
The app offers 12 different practice modes across 6 categories:
- 💻 Programming Languages - Python, JavaScript, Java, C, C++, Rust, Lua
- ⌨️ TypeWell Original - Random character drills with 4 difficulty levels
- 🔤 TypeWell English Words - Vocabulary practice with NGSL word lists
- ⚡ Initial Speed - Single character reaction time training
- 📚 Word Practice - Individual word-by-word typing
- 🔧 Custom Code - Practice with your own files and text
💻 Programming Languages Mode
Practice with real code from 7 popular programming languages:
- Languages: Python, JavaScript, Java, C, C++, Rust, Lua
- Page System: Long code is automatically split into 20-line pages
- Mode Selection: Choose Normal (backspace allowed) or TypeWell (strict, no
backspace)
- Navigation: Use Page dropdown to jump between pages, or continue
sequentially
Pro Tip: Use TypeWell mode for languages you want to master - it forces you to
type accurately without relying on backspace!
⌨️ TypeWell Original Mode
Build fundamental typing skills with random character generation:
- Format: 360 characters × 10 lines (36 chars per line)
- Difficulty Levels:
- 📝 Lowercase - a-z + space, comma, period
- 📝 Mixed Case - a-z, A-Z + space, comma, period
- 📝 With Symbols - All alphanumeric + symbols
- 🔢 Numbers Only - 0-9 focused practice
- Strict Mode: Backspace is completely disabled - stop on mistakes
- Countdown: Configurable 0-3 second preparation time before start
- Lap Times: Line-by-line completion tracking displayed in results
🔤 TypeWell English Words Mode
Improve typing speed while learning practical English vocabulary:
- Format: 400 characters × 8 lines of English words
- Word Sets:
- 📚 Top 500 Words - Most frequent everyday words
- 📚 Top 1500 Words - Extended vocabulary coverage
- 📚 All Words - Complete 2809 word database
- NGSL Database: Based on the New General Service List - scientifically
validated frequency data
- TypeWell Style: Strict mode with no backspace
- Educational: Perfect for ESL learners and vocabulary building
License: NGSL by Browne, Culligan & Phillips, licensed under CC BY-SA 4.0
⚡ Initial Speed Mode
Train your reaction time and finger reflexes with single-character drills:
- Character Sets:
- 🔤 Lowercase + Punctuation - a-z, comma, period
- 🔢 Numbers Only - 0-9
- ✋ Left Hand - qwertasdfgzxcvb keys
- ✋ Right Hand - yuiophjklnm,. keys
- 🎯 Hand Primitive - Specialized left/right reflex training
- Trials: Configure 5-20 attempts per session
- Measurement: Millisecond-precise reaction time tracking
- Anti-cheat: Detection and penalty for premature key presses
- Statistics: Trial-by-trial breakdown with fastest/slowest/average times
- Rankings: TOP3 records based on average reaction time
How it works: A character appears on screen. Press it as fast as possible. The
time from character appearance to correct keystroke is measured.
📚 Word Practice Mode
Individual word-by-word typing practice:
- Word Sets: Top 500, Top 1500, or All 2809 NGSL words
- Session Length: Configure 5-20 words per session
- Real-time WPM: Immediate speed calculation per word
- Results: Word-by-word performance with best/worst tracking
- First Key Analysis: Reaction time measurement for word recognition
Perfect for: Improving word recognition speed and building typing fluency with
common vocabulary.
🔧 Custom Code Mode
Practice with your own content - perfect for learning specific codebases or documents:
- Click the "Custom" button to open the custom code panel
- Select typing mode: Normal (allows backspace) or TypeWell
(strict, no backspace)
- Paste your code in the text area, or click "Choose File" to upload
- Enter a name and click "Save" to store for later use
- Use "Load" to select previously saved code from the dropdown
- Use "Delete" to remove saved code you no longer need
Supported Formats: .txt, .js, .py, .c, .cpp, .java, .rs, .lua, .md, .json, .html,
.css, and more
Size Limit: Maximum 1MB per file
Note: Only ASCII text files are fully supported. Files with non-ASCII characters
(Japanese, Chinese, etc.) may not display correctly.
📚 Page Navigation
Long code is automatically split into pages of 20 lines each for manageable practice sessions.
Navigation Options:
- Page dropdown: Jump to any page directly
- Next button: Continue to next page after completing current
- Retry button: Practice current page again
- Restart All button: Start over from page 1
Result Card Buttons:
- Next (Enter): Proceed to next page or finish if last page
- Retry (r): Practice current page again
- Restart All (R): Start entire practice from beginning
🧘 Auto Break Feature
Prevent fatigue with automatic break reminders:
- Setting: Configure character count threshold in Settings (0 = disabled)
- Trigger: Break dialog appears when you reach the set character count
- Smart Detection: Monitors cumulative typing across sessions
- Resume: Click "Continue" button or press Enter to proceed
- Break Stats: View current WPM, time, and character count during break
Recommendation: Set to 1000-2000 characters for regular break reminders. Take
breaks to rest your hands and eyes!
📈 Statistics & Analytics
Click the 📊 Stats button to view comprehensive practice analytics:
📊 Graph Tabs:
- 📈 Progress: Performance trends over time (line chart)
- 📊 Compare: Side-by-side language performance comparison (bar chart)
- ⚡ Speed: Initial Speed reaction time analysis (scatter plot)
- ⌨️ Keys: Keyboard heatmap + mistake frequency chart
🎯 Mistake Analysis:
- Overall Mistakes: Character-level tracking of all errors
- Keyboard Heatmap: Visual QWERTY layout showing mistake frequency
- Problem Characters: Top 8 most-mistyped characters
- Initial Speed Mistakes: Separate tracking for reaction time mode
📋 Practice History:
- Click language sections to expand/collapse
- View all attempts for each page/part
- Best records highlighted with 🏆 icon
- Click column headers to sort history tables
⚙️ Settings & Customization
Click the ⚙️ Settings button to customize your experience:
🎨 Appearance:
- Theme: Switch between Dark mode (🌙) and Light mode (☀️)
- Text Wrap: Enable/disable line wrapping for long code lines
⏱️ Practice Settings:
- Auto Break: Set character threshold for automatic break reminders (0-10000,
0 = off)
- TypeWell Countdown: Preparation time before TypeWell modes (0-3 seconds)
💾 Data Management:
- Export: Download all your data as JSON backup
- Import: Restore data from previously exported JSON file
- Delete All Data: Clear all settings, statistics, and custom codes
🎯 Color Coding:
- 🟢 Green - Correctly typed characters
- 🔴
Red - Incorrectly typed characters
- ⚪ Gray - Characters not yet typed
- 🔵 Blue background -
Current cursor position
💡 Tips for Better Practice
- 🎯 Focus on accuracy first: Speed will come naturally with practice. Aim
for 95%+ accuracy before pushing speed.
- ⌨️ Use proper finger positioning: Follow touch typing guidelines - home row
position for best results.
- 📅 Practice regularly: Short, frequent sessions (15-30 minutes) are more
effective than occasional long sessions.
- 🧘 Take breaks: Use the auto-break feature to prevent fatigue and RSI.
- 🐢 Don't rush: Maintain a steady rhythm. Avoid "hunting" for keys.
- 📊 Review your stats: Check the Stats panel regularly to identify patterns
and weak points.
- ⛔ Try TypeWell Mode: Strict mode (no backspace) builds better accuracy
habits.
- ⚡ Practice Initial Speed: Single character drills improve reaction time
and reduce hesitation.
- 🔄 Mix it up: Practice different languages and modes to build versatility.
- 📈 Track progress: Use the Progress graph to see improvement over time.
⌨️ Keyboard Shortcuts Reference
| Key |
Action |
When |
| Esc |
Reset and restart from beginning |
Anytime during practice |
| Enter |
Continue to next page / finish |
During results display |
| r |
Retry current page |
During results display |
| R |
Restart entire practice |
During results display |
| Enter |
Resume from break |
During break dialog |
| Enter / Space |
Start practice |
On start screens |
| Backspace |
Delete last character |
Normal mode only |
🔧 Troubleshooting
- App not responding: Refresh the page (F5 or Ctrl+R) to reset. Your data is
safely stored.
- Wrong character highlighted: Make sure you're typing exactly what's shown.
Check for spaces (␣) and tabs (→).
- Custom code not displaying: Ensure the file is plain text (UTF-8). Binary
files won't work.
- Stats not saving: Check that localStorage is enabled in your browser
settings.
- Break dialog not appearing: Check Auto Break setting is > 0 in Settings
panel.
- Graphs not showing: Ensure canvas is supported by your browser (all modern
browsers support this).
- Import not working: Make sure you're importing a valid JSON file exported
from this app.
- Dark/Light theme issues: Toggle the theme switch in Settings to refresh.
Still having issues? Try clearing browser cache or opening in an incognito/private
window. All data is stored locally - no server involved!
🔒 Privacy & Data Storage
- 100% Private: All data is stored locally in your browser using localStorage
- No Server: This app works completely offline - no data is ever sent to any
server
- Your Control: You own your data. Export it anytime as JSON backup
- Retention: Data persists for 365 days (browser standard) or until you clear
it
- Cross-Device: Use Export/Import to move data between devices
Data Stored: Practice statistics, TOP3 records, custom code files, theme
preferences, mistake character data, and settings.