Last time, the server learned to keep BoomerClip's promise: when nobody is watching, the recording is deleted. No exceptions.
But a guarantee cuts both ways. If the server deletes the moment a viewer leaves, the page had better be sure the viewer meant to leave.
It wasn't.
The page with trapdoors for exits
Refreshing asked first. Clicking a link inside the app didn't, and neither did the back button. That includes the Privacy link, so reading the privacy policy of a privacy app destroyed the video you came to watch.
Refreshing during a slow load counted as leaving too. So did checking your own link: the share screen had an "Open in New Tab" button, which made you the viewer, and closing that tab made you the viewer who left. You tested your link to death.
Now every way off the page asks first. Nothing joins until the video has loaded. The creator gets their own view of their link, with status, copy and delete, and it never counts as watching. Leaving is also sent as a beacon, so the goodbye still arrives when the tab is closing, and a refused autoplay no longer tears down the player.
Four players, one idea copied four times
In 2025 I split the viewer into Chrome, Edge, Firefox and Safari players and felt great about it. Each one drifted in its own direction. The server told Edge and Safari that MP4 files were WebM, and in some browsers the duration showed as Infinity.
All four are gone. One player now asks the browser what it can do instead of guessing from its name. It works from the keyboard and with screen readers.
The part I'm proudest of: before joining, the page checks whether the browser can play the recording. If it can't, it says so and doesn't join, so the link survives for a browser that can. Otherwise you'd send a clip, someone would open it in the wrong browser, close the tab, and it'd be gone with nobody having seen it.
Checked in Safari on a Mac and an iPhone. Server tests 100 → 124, and the client has its first 64.
The app was saying things that weren't true
- The stats were fake. With every counter at zero, they returned demo numbers. Now they're real, and there's a Recordings Deleted count, the one number this app should brag about.
- The brand art made promises. The new logo and home page came from collages with "no uploading" and "any device" baked in. Neither is true, so they're cropped out, along with a Premium card for features that don't exist.
- The leave dialog lied to groups. A recording is deleted when the last viewer leaves, but everyone was told leaving would delete it. The wording now depends on how many people are watching.
Meanwhile, in the plumbing
Create React App is gone in favour of Vite, and client security advisories dropped from 30 to 0. The move also revealed that the production build called http://localhost:3000. A deployed BoomerClip would have looked for its API on the visitor's own computer.
Cliffhanger: Safari won't record
Playback works everywhere I've tested. Recording failed in Safari. On the Mac that's probably because I was on plain HTTP, which doesn't allow screen capture. On the iPhone there's no fix: Safari doesn't let web pages capture the screen at all. There might be a way to get around this and at the very least allow screen capture...
So Phase 4 is a recorder that says what it can't do before you press Record.
Seen once, then gone. And now, only when you mean it.
~ Jer