RSVP Formatter is a web application for rapid serial visual presentation (RSVP) reading workflows. It allows importing text from multiple sources, building a structured reading outline, and reading in focused playback modes.
Author: David Clarkson
This project provides:
- A Source Workspace to prepare content from:
- pasted text
- uploaded files (txt, md, html, pdf, doc, docx, odt, epub)
- one or more URLs
- a built-in public-domain library
- A Reader Mode focused on reading flow with:
- ORP word mode
- Line flow mode
- Chunk mode
- Outline extraction and synchronized navigation
- Playback controls with speed and style settings
- Theme presets and saved preferences
PWA/offline installation is intentionally disabled in this version. A PWA implementation can be added in a future iteration.
- Node.js 20+ (recommended: latest LTS)
- npm 10+
git clone https://github.com/Daclapo/RSVP-Formatter.git
cd rsvp-formatter
npm installgit pull
npm installDevelopment:
npm run devProduction build:
npm run build
npm run startLint:
npm run lint- Paste: write directly in the editor
- Upload: import multiple files, review extracted results, then append or replace editor text
- URL: queue one URL per line, import all, then append or replace editor text
- Library: load a public-domain book
Use playback controls to set:
- reading mode (ORP / line flow / chunk)
- WPM speed
- font family and text metrics
- visual colors for reader background/text
In Reader Mode you can:
- play and pause reading
- search lines
- jump via outline
- use Zen mode for distraction-free playback
Space/K: play or pauseArrowLeft: previous stepArrowRight: next step[and]: decrease/increase WPMF(Reader Mode): toggle findEsc: exit Zen or close Reader panels
src/app/page.tsx: main UI workflow (workspace + reader)src/components/: feature componentssrc/components/ui/: reusable UI primitivessrc/lib/reader/parse.ts: parsing and outline mappingsrc/lib/reader/file-extract.ts: multi-format file extractionsrc/app/api/proxy/route.ts: URL content extraction endpoint
docx,pdf,odt, andepubare parsed with best-effort extraction.- Legacy binary
docfiles are best-effort and may require conversion todocxfor better results. - Complex formatting is flattened into reading text intentionally.
MIT. See LICENSE.