A modern speed reading application that uses the RSVP (Rapid Serial Visual Presentation) technique to help you read faster and more efficiently. SpeedRead Pro presents words one at a time at a configurable pace, allowing you to train your reading speed without traditional eye movement.
- RSVP Display: Words are displayed one at a time in a centered, distraction-free interface
- Optimal Recognition Point (ORP): Highlights the optimal character in each word for faster recognition
- Smart Punctuation Delays: Automatically adjusts timing for punctuation marks (periods, commas, colons)
- Adaptive Word Length: Longer words get slightly more display time
- Progress Tracking: Visual progress bar shows your reading position
- Speed Control: Adjustable reading speed from 100 to 1500 WPM (Words Per Minute)
- Auto-Acceleration: Optionally increase reading speed automatically every 20 words (+0 to +10 WPM)
- Font Size: Adjustable from 1.0 to 5.0rem for comfortable reading
- Font Family: Choose between Inter, Monospace, or Dyslexic-friendly fonts
- Multiple Themes: Light, Dark, and Sepia modes for different reading environments
- ORP Toggle: Enable/disable the Optimal Recognition Point highlight
- Text Paste: Paste any text directly into the input area
- File Upload: Support for TXT and PDF files (coming soon)
- Sample Text: Pre-loaded demo text to try the app immediately
- Play/Pause: Start and stop reading at any time
- Reset: Return to the beginning of the text
- Progress Scrubbing: Click on the progress bar to jump to any position
- Skip Forward/Back: Jump 10 seconds forward or backward in your reading
- Node.js (v16 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/Viniciusmq25/SpeedRead-Pro.git cd SpeedRead-Pro -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open your browser and navigate to:
http://localhost:5173
npm run buildThe built files will be in the dist directory, ready to be deployed to any static hosting service.
npm run previewSpeedRead Pro uses the RSVP technique, a scientifically-backed method for speed reading:
- Single Word Display: Only one word is shown at a time, eliminating the need for eye movement
- Fixed Focus Point: Your eyes stay in one place, reducing cognitive load
- Optimal Recognition Point: The most important character in each word is highlighted (or centered) for faster recognition
- Smart Timing: Words are displayed at intervals based on your selected WPM, with adjustments for punctuation and word length
The Optimal Recognition Point is typically:
- 1-letter words: First character (index 0)
- 2-5 letter words: Second character (index 1)
- 6-9 letter words: Third character (index 2)
- 10-13 letter words: Fourth character (index 3)
- 14+ letter words: Fifth character (index 4)
This positioning helps your brain recognize words faster by focusing on the most information-rich part of each word.
- React 19: Modern UI framework with hooks
- TypeScript: Type-safe development
- Vite: Fast build tool and dev server
- Zustand: Lightweight state management with persistence
- Tailwind CSS: Utility-first styling
- Lucide React: Beautiful icon library
SpeedRead-Pro/
├── components/
│ ├── Controls.tsx # Play/pause/reset controls
│ ├── InputSection.tsx # Text input and file upload
│ ├── ProgressBar.tsx # Reading progress indicator
│ ├── RSVPDisplay.tsx # Main word display engine
│ └── SettingsPanel.tsx # Settings configuration
├── utils/
│ └── textProcessor.ts # Text parsing and timing logic
├── App.tsx # Main application component
├── store.ts # Zustand state management
├── types.ts # TypeScript type definitions
└── index.tsx # Application entry point
- Start with 250-300 WPM to get comfortable
- Keep ORP highlighting enabled to train your eyes
- Use Sepia theme if reading for extended periods
- Practice with shorter texts first
- Gradually increase to 400-600 WPM or higher
- Try disabling ORP once you're comfortable
- Use Auto-Acceleration to push your limits (+2 to +5 WPM recommended)
- Experiment with different fonts to find what works best
- Take breaks every 20-30 minutes
- Start each session at a comfortable speed
- Focus on comprehension, not just speed
- Use the progress bar to re-read difficult sections
- Keyboard shortcuts (spacebar for play/pause)
- Full PDF file support
- Reading statistics and history
- Multi-language support
- Customizable color schemes
- Word grouping options (2-3 words at a time)
- Export reading sessions
- Browser extension version
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- RSVP reading technique research and methodology
- React and TypeScript communities
- All contributors and users of SpeedRead Pro
Vinicius - @Viniciusmq25
Project Link: https://github.com/Viniciusmq25/SpeedRead-Pro