A speech-aware teleprompter that runs in the browser with no account: write or import a script, let it follow your voice word by word, control it with voice commands, and drive it from a second device.
It started from a Vite, React and shadcn/ui template, with the first real commits on 4 May. The idea: a teleprompter for people who prep on a laptop and deliver from a phone, where the script stays readable and the interface gets out of the way.
versionstageMay 2026
A stage you can read
Smooth auto-scroll, size and speed controls, a draggable focus line that sets where the reading line sits, mirroring for glass rigs, and a horizontal lightbox mode for physical teleprompters.
problemspeechMay 2026
Follow mode, rebuilt
I first tried an alignment library, then replaced it with a plain word-by-word tracker that advances the cursor by exactly one per matched word, so it can never overshoot. One commit message from that day just says "finally done".
versionwake wordMay 2026
Voice commands
Say "prompter" and then play, pause, restart, forward or back. Matching is fuzzy, using edit distance, so it forgives the way people actually say words.
breakthroughmobileMay 2026
Mobile is a real surface
The layout was rebuilt for the phone rather than shrunk: a read and a script tab, a sticky control bar, controls that fit narrow screens, and speech follow fixed for mobile browsers.
lessonone streamMay 2026
One microphone
Follow mode and voice commands both need speech recognition, and a browser gives you one recogniser. They were merged into a single hook that listens once and routes what it hears to both.
notepolishMay 2026
Reading comes first
A focus-line position you can set, text you have already read that dims a little so it does not compete for attention, and a scroll mask fix so the stage fades cleanly.
launchremoteMay 2026
A second screen
Remote sync: host the script on one device, join from another with a six-character code. It polls a tiny serverless endpoint, so there is no WebSocket server. Screen Wake Lock keeps the display on in fullscreen.
Speakers, creators, educators and solo operators write a script on a laptop and then have to read it on a phone or a camera rig. They need type that stays readable, a pace that follows them, and a way to restart without fumbling. Proompter is a teleprompter that disappears into the task.
facts.txt
Problem
A script you have to chase while you speak
Audience
Speakers, creators, educators, worship leaders
Surfaces
Desktop and phone browsers
Data
Local only, no account
Browsers
Chrome and Edge for speech features
Timeline
May 2026, ten days
04process
How I approached it
01
Reading comes first
Legibility and flow matter more than decoration. The palette is warm and typographic, closer to a printed journal than a SaaS dashboard, with one accent colour.
02
Mobile is a real surface
Thumb reach, panel order and one-handed use were designed for, so the phone layout is read and script tabs with a sticky bar, not a squeezed desktop.
03
Follow mode is a trust feature
If the prompter jumps, you lose your place. So the tracker moves one word at a time, ignores fillers it cannot match, and only widens its search when it has clearly lost you.
04
Controls feel like an instrument
Compact, precise controls with clear states, and keyboard shortcuts for everything: space, arrows, F, M and R.
05
Keep it local
Scripts live in the browser, import and export are plain text and markdown, and the only server is a throwaway relay for the remote.
05shots
A look at the app
desktop
on a phone
remote sync
06how it is different
How it is different
Many teleprompters scroll at one fixed speed and leave the speaker to keep up, and many want an install or an account. Proompter is built the other way round:
It listens, so the script moves at your pace instead of the other way round.
Voice commands work hands-free with a wake word and forgiving matching.
A second device mirrors the script with a six-character code.
It is just a web page: no install, no sign-up, and your scripts stay on your device.
07stack
What it runs on
React 18 + TypeScriptThe app
Vite + SWCBuild and dev server
Tailwind + shadcn/uiStyling and Radix primitives
Web Speech APISpeech recognition for follow mode and commands
localStorageScripts and settings, no account
Vercel serverlessA small relay for remote sync
VitestTests for the speech tracker
08challenges
What got in the way
the problem
Speech recognition mishears words and people ad-lib, so a naive match drifts or jumps.
so →
fix.md
Each heard word is matched against the script near the cursor with a similarity threshold, stop words are ignored, at most a few words can be skipped, and a wider search only runs when nothing matches.
the problem
A repeated phrase later in the script could pull the cursor to the wrong place.
so →
fix.md
Interim speech never takes the wide jump. Tests cover that case, and cases like a single dropped script word.
the problem
Follow mode and voice commands both need the microphone, and browsers give you one recogniser.
so →
fix.md
One unified hook owns the recogniser and routes each result to the tracker and to wake-word and command matching.
the problem
Syncing two devices normally means a WebSocket server and accounts.
so →
fix.md
A host pushes the script to a tiny serverless endpoint under a six-character code, and the client polls it. Rooms expire after two hours. It is in memory, which is fine for a personal tool.
the problem
A phone screen dims mid-read.
so →
fix.md
The Screen Wake Lock API keeps the display on in fullscreen.
09results
What came out of it
55commitsin ten days, May 2026
2stage modesvertical and lightbox
5voice commandsbehind a wake word
6character room codefor the remote
Proompter is live and free to use in a browser. These numbers describe what was built. I have no usage figures.
10lessons
What I learned
Do the simple tracker first. The alignment library was cleverer, and the plain word-by-word matcher was the one that stayed on the script.
A feature that moves text under someone's eyes has to be predictable. Never overshoot is a better promise than usually right.
Design the phone layout on its own. Shrinking the desktop never felt right in the hand.
You can often skip the server. A polling relay was enough for a two-device remote.
11notes
Proompter: a teleprompter that listens
A small, finished product. A Vite single-page app with a serverless relay, built to disappear behind the script.
Try Proompter
Free in the browser. Speech features need Chrome or Edge.
Proompter on a phone with the read and script tabs
13up next
up next →
Pocket Monitor
2026
open source
Rust · Desktop · Video
An open-source Windows desktop field monitor for DJI Osmo Pocket cameras: the laptop becomes a live viewfinder with camera controls, scopes and virtual-camera output. A desktop-focused continuation of OpenPocketCine by Erik Sutton, with the Windows shell built here.
say-hi.txt
Want something like Proompter?
Tell me what you're making and I'll tell you how I'd build it.