Squeeze.
Shrink the file. Keep the frame.
A native iOS app that turns multi-GB video exports into shareable, frame-accurate files without the quality collapse. HEVC-aware pipeline, native AVFoundation throughout, RevenueCat and TelemetryDeck scaffolded for launch.
Compression without the ceremony.
I kept hitting the same friction — recording a clip on iPhone, then spending five minutes in a desktop tool to resize it enough to send. Squeeze is the version of that tool that lives on your phone, doesn't need an account, and gets the frame right on the first try.
iPhone makes beautiful files that nothing can send.
A minute of ProRes off an iPhone 15 Pro is 6 GB. iMessage caps at 100 MB. Discord caps at 25. So the workflow most people end up with is: record the clip, AirDrop it to a Mac, open HandBrake, guess at a bitrate, wait, check the file, realize it's still too big, try again. Three rounds later the moment you wanted to share is gone.
I got tired of doing this dance for two-second clips. The tooling to solve it already lives on the phone (AVFoundation and HEVC are right there). Squeeze collapses the five-minute desktop detour into two taps on the device that made the file.
Who this is for.
I asked twelve people how they shrink iPhone videos before sending. Two used an existing app, ten just… didn't. They either cropped the clip into a screen recording or gave up. The pattern was obvious the moment I stopped asking engineers.
"I record my kid's soccer games in 4K and then they rot in the camera roll because I can't text them to my mom." // User interview · Parent · iPhone 14 Pro
"If it makes me sign up for anything I'm out. I just want the smaller file." // Field observation · TestFlight cohort · pre-launch
Two non-negotiables came out of it: no account, and the output file size has to be visible before the export runs. Everything else was negotiable.
Everything on-device, nothing in the cloud.
Import triggers an AVAsset read, the HEVC path does the heavy lifting through AVAssetExportSession with tuned presets, the preview pane renders an estimated output size from the picked bitrate curve, and the share sheet hands the finished file back to iOS. No server round-trip, no upload, no "trust us with your family video."
Three calls I'd defend.
FFmpeg would give me more knobs, but it also means carrying a huge binary, writing an Objective-C bridge, and fighting App Review on LGPL compliance. AVFoundation is native, hardware-accelerated on the Neural Engine, and Apple will keep it working on future iPhones. The knobs I lose are knobs the user wouldn't have touched anyway.
This is the single interaction that separates Squeeze from every other compression app. Running a quick bitrate calculation on the asset's duration and tuned preset gives a size estimate within a few percent, and the user can pick a preset that fits their messenger's limit before burning a 30-second export they'll throw away.
Every app store tier 2 compression app gates the first export behind signup. Squeeze's first run is: pick a video, hit squeeze, save. RevenueCat is scaffolded for a future bulk tier, but the core loop stays free and anonymous. The conversion story is the second export, not the first.
MVP is submission-ready.
Squeeze is feature-complete against the MVP spec and sitting on my desk for App Store review. TestFlight cohort is small and hand-picked — friends who record a lot of video. Numbers below are from internal benchmarks on a grab-bag of iPhone clips.
What I'd do differently.
I'd write the preset engine as a standalone Swift package from the start, not as a handful of extension methods on AVAssetExportSession. The moment I wanted to test presets against a corpus of real clips I had to pull the logic out anyway. Doing it under deadline hurt more than doing it up front would have.
I'd also start with a command-line harness that runs the pipeline headless. Debugging export issues through SwiftUI previews was fine until it wasn't, and by the time I was on my fourth "why is this clip dropping audio on the last frame" bug, I wished I'd built a terminal tool that could just process a folder of videos and diff the output.