
MAGNUS.TOWN
:
Read PDFs much faster!
25 July, 2026
I read a lot of PDFs, whether they are reports, papers, or documentation. However, it is different from reading physical books or papers. It is easier to get distracted when reading PDFs than books. A while ago, I came across something called RSVP, which made me read much faster with less distractions. I thought about integrating this into my website, so I finally did.
What is RSVP reading?
RSVP stands for Rapid Serial Visual Presentation. Instead of moving your eyes left to right across a line of text, the words come to you one at a time, in the same place on screen. Your eyes stay completely still. The reason this works is that a large portion of your reading time is spent on eye movements that jump from word to word and from line to line. Those movements take time and cognitive effort. Eliminate them, and you can comfortably absorb text at 400–600 words per minute, compared to the average of around 200–250 wpm for ordinary reading.
Most RSVP apps I've tried are either paywalled, require you to upload your document to a server or do not fit my use case, so I built my own.
What I built
The tool can be found at magnus.town/projects/speedreader. It displays one word at a time in the same position, using the ORP (Optimal Recognition Point) technique. The pivot letter in each word is highlighted in red, which is where the eye naturally anchors. Speed is adjustable from 100 to 1000 WPM. A context line below the main word shows surrounding words. Spacebar toggles pause/play, arrow keys toggle back and forth. It is also possible to input page numbers. Everything runs in the browser using PDF.js, compiled using Gatsby. The tool can also pause and alert when it comes across a figure, but this is something you can toggle.
When trying a couple of different PDFs, I noticed that it also displayed page numbers, headings, and footers. So I looked at some different PDFs and found out that this is hard. LLMs helped me solve this problem. It is better now, but not perfect. PDF.js returns text fragments in draw order, not reading order, and documents like government reports include tables full of numbers, multi-column layouts, tables of contents, etc. The result isn't perfect because PDFs are very inconsistent, but it is better now than before this.
What's next
A few things I'd like to add if I have time.
- EPUB support? TXT input field?
- Adjustable font size?
- More? Message me!
Try it and see how fast you can read. No account. No uploads. No data collection. Just faster reading!