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) |
| 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 | MP4 or WebM, checked in browser | 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) |
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.
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: Studio prefers MP4 when supported, then WebM.
- Firefox: Studio saves WebM.
- 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.
Studio checks the formats offered by your browser before recording. It prefers MP4 when available and otherwise saves WebM. Studio writes recording chunks to local browser storage about once per second so a take can be recovered after an interrupted session. Some Safari versions ignore the one-second chunk interval and deliver video only when recording stops; a killed tab on those versions may have no recoverable video.
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.