A link to a post about “Software’s YouTube Moment” appeared in my TLDR newsletter this morning. I thought the timing of it was interesting. I wasn’t going to write again about how simple this is becoming, but again, I don’t want to mistake familiarity with common knowledge. So, here we go.
The Motivation
Yesterday morning, David Armano posted a video demonstrating RSVP speed reading. I didn’t know that’s what it was at the time. So I screencaptured a bit of it and fed it to ChatGPT. In a few seconds, I had the answer.
“The original source appears to be a YouTube video called ‘How Fast Can You Read? – Speed Reading Challenge‘ on the Buffed YouTube channel. That video showcases words flashing quickly one at a time (a technique called Rapid Serial Visual Presentation) to test or train reading speed.” Sure enough, that was the one.
I sent a link to his post to my family, and then I thought, “This would be so much better if you could upload your own content.” Then you could use the technique on material you needed to read anyway to train your reading speed.
I’ll Just Have ChatGPT Write The Prompt
Me: “This is most certainly the speed-reading challenge/demo video concept. If I wanted to have Claude Anthropic build a web page that allowed me to upload some text and set a speed to read it at, could you give a prompt to make that happen?”
ChatGPT: “Yep. If you give Claude the right constraints up front, it can spit out a solid one-file web app that does the whole RSVP speed-reading thing. You want to be explicit about ‘single HTML file,’ ‘no frameworks,’ ‘FileReader for uploads,’ and the exact controls you want. Below is a copy-paste prompt that usually gets you a clean result on the first pass, plus a couple of notes at the end to keep Claude from drifting.”
I copied the prompt and pasted it into Claude Opus 4.5, and it built an RSVP speed reader in just a few iterations. I’m not sure how it could be simpler.
I Asked Claude To Describe The Steps
Initial Build You provided detailed specifications for a single-file HTML speed reader with file upload, paste input, playback controls, WPM/font settings, dark mode, punctuation pause, and pivot letter highlighting. I built the complete app in one pass.
Pivot Letter Centering Problem: You reported the pivot letter was jumping around rather than staying fixed at screen center. My first fix attempt used a three-part flex layout with
flex: 1on the before/after sections — this made it worse, placing the pivot nowhere near the center line.Second Centering Attempt: I switched to JavaScript-calculated positioning. The word is rendered with three spans (before, pivot, after), then I measure their widths and calculate exactly how much to shift the whole word so the pivot’s center aligns with the screen’s center. The formula:
shift = (totalWidth/2) - (beforeWidth + pivotWidth/2). This worked.Visual Refinements: You asked me to make the center guide line less obtrusive. I reduced it from 2px to 1px, changed the color from accent red to neutral border color, shortened it to span only the middle 40% of the display area, and set
z-index: 0so text renders on top.Default Settings: You wanted specific defaults: WPM 333, font size 33px, pivot highlight ON, punctuation pause ON. The code had them correct, but your browser was loading old values from localStorage. I changed the storage key to
speedReaderSettings_v2to force fresh defaults.Copy Tweak: You had me replace the WPM hint text with a fact about average reading speed.
WordPress Version: Finally, you asked for an embeddable version. I rebuilt it with scoped CSS (all selectors prefixed with
#speed-reader-app), namespaced element IDs (sr-prefix), an IIFE wrapper for JavaScript, and removed the document structure — making it safe to drop into a Custom HTML block.
The Process Took Twenty-Nine Minutes
I put the prompt into Claude at 8:39 AM, and I said it was perfect at 9:08 AM. So, about 29 minutes from my initial spec to a working, polished speed reader with:
- Full RSVP playback with centered pivot letter
- All the controls and settings
- localStorage persistence
- My preferred defaults
- Visual refinements
That included two failed attempts at the pivot centering before getting it right, plus the localStorage caching issue Claude Opus 4.5 had to work around for one of the previews. And I was working on other things while it was coding. The WordPress version and the recap above came after.
That’s not bad for an interactive tool built iteratively through conversation. You can play with it below, but it’s best to download the HTML and run it full-screen on your computer.
Speed Reader
RSVP (Rapid Serial Visual Presentation) for faster reading

Add your voice...