quickreader Svelte Themes

Quickreader

Web-based RSVP speed reader that displays text one word at a time with Optimal Recognition Point (ORP) highlighting. Read EPUBs and text files at 100-900+ WPM. Features smart pauses, progress saving, themes, and full keyboard navigation. Built with Svelte 5.

QuickReader

A web-based RSVP (Rapid Serial Visual Presentation) speed reader that displays text one word at a time, allowing you to read at 100-900+ words per minute without eye movement.

Live site: quickreader.app

Features

  • 10+ File Formats - EPUB, MOBI/AZW3, FB2, PDF, DOCX, ODT, RTF, Markdown, HTML, TXT
  • ORP Highlighting - Optimal Recognition Point letter highlighted for faster reading
  • Adjustable Speed - 100-900 WPM with real-time adjustment
  • Smart Pauses - Extra time on punctuation, long words, and names
  • Text Formatting - Preserves italic and bold from EPUBs
  • Progress Tracking - Saves your position per file automatically
  • Last Read Position - Tracks where you were actively reading, clickable to return
  • Preview Panel - Side panel shows current page with click-to-navigate
  • Keyboard Navigation - Full keyboard control for hands-free reading
  • Themes - Dark, Light, Sepia, and High Contrast modes
  • Responsive - Works on desktop and mobile
  • Privacy First - All processing happens locally, no uploads

Demo

        ───────|───────
           ama|zing
        ───────|───────

The ORP (red letter) stays fixed while words flow past, eliminating eye movement and dramatically increasing reading speed.

Quick Start

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

Open http://localhost:5173 and load a file to start reading. Try the built-in samples or load your own ebooks and documents.

Keyboard Shortcuts

Key Action
Space Play/Pause
/ Previous/Next word
Ctrl+← / Ctrl+→ Previous/Next paragraph
Page Up / Page Down Previous/Next page
[ / ] Decrease/Increase speed by 50 WPM
Esc Close modals

How It Works

RSVP displays words one at a time at a fixed focal point. The Optimal Recognition Point (ORP) - the letter your eye naturally focuses on - is highlighted and centered, eliminating the need for eye movement across the page.

ORP positioning by word length:

  • 1-2 letters: 1st letter
  • 3-6 letters: 2nd letter
  • 7-9 letters: 3rd letter
  • 10+ letters: 4th letter

Smart timing adjustments:

  • Punctuation (. , ! ?) adds 50% pause
  • Long words (10+ chars) add 20% pause
  • Names/proper nouns add 30% pause

Tech Stack

  • Framework: SvelteKit with Svelte 5 runes
  • Language: TypeScript
  • EPUB Parsing: epub.js
  • PDF Parsing: pdf.js (pdfjs-dist)
  • Storage: localStorage for settings and progress
  • Styling: CSS (no framework)

Project Structure

src/
├── lib/
│   ├── components/     # Svelte components
│   │   ├── Redicle.svelte      # Word display with ORP
│   │   ├── Controls.svelte     # Playback controls
│   │   ├── FileLoader.svelte   # File input
│   │   ├── Preview.svelte      # Context preview panel
│   │   └── Settings.svelte     # Theme/font settings
│   ├── stores/         # Svelte stores
│   │   ├── reader.ts   # Playback state
│   │   ├── document.ts # Loaded document
│   │   └── settings.ts # User preferences
│   └── utils/          # Utilities
│       ├── adapters/   # Format adapters (EPUB, PDF, DOCX, etc.)
│       ├── orp.ts      # ORP calculation
│       └── *-parser.ts # Format-specific parsers
├── routes/
│   ├── +page.svelte    # Main reader page
│   ├── about/          # About RSVP technology
│   ├── help/           # Keyboard shortcuts & guide
│   └── privacy/        # Privacy policy
└── static/samples/     # Built-in sample files

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE for details.

Acknowledgments

Top categories

Loading Svelte Themes