Your files
When you pick a file, your browser hands the page a way to read it from your disk. Decoding and encoding happen on your machine through WebCodecs, a browser feature. Results are held in memory, or in the browser's private disk storage for very long jobs, until you save them. There is no upload code in these pages.
What the browser enforces
Every page is sent with a Content Security Policy. It tells your browser to refuse network connections to any other site. The page can only talk to actuallyop.com, and it does that for two things: loading its own files, and checking a Pro key if you have one. The key check sends your key. It doesn't send file names, file contents or anything about your clips.
Same-site requests are allowed because the key check needs them, so the policy alone doesn't prove nothing goes to our own server. You can check that yourself: open your browser's developer tools, go to the Network tab and run a job. Or load the page, turn off your Wi-Fi and run it offline.
What we don't see
No analytics on these pages. No ads. We don't get your file names, and we have no copy of your clip to lose. The hosting provider logs page requests as all web hosts do.
Works on
Built and tested on current Chrome on Windows. Edge uses the same engine. Firefox 130 or newer on desktop and recent Safari should work, but we haven't run them yet, so tell us at hello@actuallyop.com if something breaks. Tools check for what they need and say so if your browser can't do it. The thumbnail resizer and mod list formatter work without WebCodecs when you use images and text.
Your browser decides which video formats it can read. H.264 works everywhere. HEVC, which some phones and consoles record, depends on your device.
Pro checks
Pro limits are checked in your browser. Anyone who edits the page can get around them. We're fine with that: Pro is for people who want to pay for the work.
Open source inside
| Project | Used for | Licence |
|---|---|---|
| Mediabunny | Reading, writing and converting video | MPL-2.0 |
| @mediabunny/mp3-encoder | MP3 output | MPL-2.0 |
| LAME | MP3 encoder inside the extension above | LGPL |
| @mediabunny/aac-encoder | AAC audio in browsers without their own encoder | MPL-2.0 |
| FFmpeg AAC encoder | Inside the extension above. Built with no GPL parts | LGPL-2.1 |
| gifenc | GIF output | MIT |
| Dela Gothic One, Big Shoulders Display, Atkinson Hyperlegible | Fonts | OFL-1.1 |
Mediabunny and its encoder extensions are used unmodified, and their source is at github.com/Vanilagy/mediabunny. The LAME and FFmpeg builds are compiled inside those extensions, which keep the build steps in their READMEs. Those two load as separate files, so you can swap them for your own build. LAME asks for a mention, and here it is.