Device & browser matrix
Clear capabilities. Graceful fallbacks.
We do not claim universal support where APIs differ. Here is the verified capability matrix for teleprompter.wtf across modern desktop and mobile browsers, tested against real hardware.
Last verified: 23 August 2026
Compatibility at a glance
| Capability / Feature | Chrome / Edge | Firefox | Safari (macOS) | iOS / iPadOS | Android Chrome | Fallback when unavailable |
|---|---|---|---|---|---|---|
| Manual Scrolling | Full | Full | Full | Full | Full | Always available (0 dependencies) |
| Smart Pace (Web Audio) | Full | Full | Full | Full | Full | Falls back to Manual scrolling |
| Private Precision (WASM) | Full | Full | Full | Supported (4GB+ RAM) | Supported (4GB+ RAM) | Falls back to Smart Pace |
| Document Picture-in-Picture | Supported (v116+) | Not in browser | Not in browser | Not in browser | Not in browser | Video PiP or Pop-out window |
| Video Picture-in-Picture | Supported | Supported | Supported | Supported | Supported | Pop-out window |
| Screen / Camera Recording | WebM (VP8/Opus) | WebM (VP8/Opus) | MP4 (H.264/AAC) | Camera only | Supported | External screen recorder / OBS |
| Fullscreen Presentation | Supported | Supported | Supported | iPadOS only | Supported | Maximized browser viewport |
| Horizontal Mirroring | Supported | Supported | Supported | Supported | Supported | CSS transform (Universal) |
| Offline Operation | Full (PWA cache) | Full (PWA cache) | Full (PWA cache) | Full (PWA cache) | Full (PWA cache) | Static cached bundle |
Presentation mode capabilities
1. Manual Mode
Manual mode calculates scroll movement from continuous performance timestamps (`requestAnimationFrame`) multiplied by your selected speed setting. Because it has zero external dependencies and does not require microphone permission, it works across every browser engine, including legacy environments.
2. Smart Pace
Smart Pace relies on `navigator.mediaDevices.getUserMedia` and the standard `AudioContext` / `AnalyserNode` APIs. In modern browsers supporting `AudioWorklet`, PCM capture runs on an audio rendering thread; in older Safari builds, it gracefully degrades to a ScriptProcessor node. If microphone permission is denied or no input device is detected, the presenter clearly displays a notice and leaves manual scrolling active.
3. Private Precision Beta
Private Precision Beta runs single-threaded WebAssembly in a dedicated Web Worker via ONNX Runtime Web. Because Whisper Tiny requires around 250 MB to 400 MB of heap during peak model inference, devices with very low available RAM (such as budget phones or heavily throttled tabs) may experience sluggish updates. Whenever a recognition chunk fails or takes longer than the real-time deadline, the system drops the chunk and maintains scroll pace through Smart Pace without jumping.
Picture in Picture & compact views
Positioning your script right next to your camera lens is critical for natural eye contact. We implement a 3-tier capability hierarchy:
- Tier 1: Document Picture in Picture (Chromium 116+) - Opens a true, floating HTML window containing the full interactive script, speed controls, and timer.
- Tier 2: Canvas Video Picture in Picture (Firefox, Safari) - Renders script lines into a dynamically animated HTML Canvas streamed through a hidden <video> element into the standard Video PiP window.
- Tier 3: Clean Pop-out Window - Launches a minimal, frameless browser popup window that can be positioned anywhere on your display.
Local video & audio recording
Local recording captures video streams directly into browser memory using `MediaRecorder`. Different browsers support different container formats:
- Chromium & Firefox: Generates `video/webm;codecs=vp8,opus` files.
- Safari (macOS 14+): Generates `video/mp4;codecs=avc1,mp4a` files.
- Mobile Devices: Display capture (`getDisplayMedia`) is restricted by iOS and Android security policies, but Camera capture (`getUserMedia`) functions normally.
All recordings are generated as client-side Blobs. No video chunk is ever streamed to a remote server.
Hardware teleprompter rigs & beam-splitter glass
When placing an iPad, tablet, or monitor beneath a 70/30 or 60/40 beam-splitter glass hood, the reflected image is reversed horizontally. teleprompter.wtf provides hardware-accelerated CSS mirroring (`scaleX(-1)`) and vertical flipping (`scaleY(-1)`) that functions universally on all devices without requiring paid companion apps.
Ready to test with your script? Open teleprompter.wtf or review our Features Overview.