Your files never leave the device
No upload, no temporary storage, no account. Compression runs in WebAssembly and WebCodecs inside your browser, it even works offline once the page has loaded.
Compress images and videos entirely in your browser so they fit under the Discord upload limit. Your files never leave this device.
Target size 20 MB
Drop images or videos here
Or click to browse, or just hit Ctrl + V to paste a screenshot
Images: JPEG / PNG / WebP / GIF / BMP · Videos: MP4 / MOV / WebM / AVI
Three steps, all of it inside your browser. Nothing is sent anywhere along the way.
Free accounts use 20 MB, Nitro Basic 50 MB, Nitro 500 MB. You can also type your own target size.
Drag and drop, click to browse, or paste a fresh screenshot with Ctrl + V. Multiple files at once are fine.
Everything is processed locally. Download each file, or grab them all as a ZIP.
These are the official limits as of August 2026. FitSize uses them as its default targets.
| Plan | Per-file limit | Resolution cap used here |
|---|---|---|
| Free account | 20 MB | 1280 px long edge |
| Nitro Basic | 50 MB | 1920 px long edge |
| Nitro | 500 MB | Original resolution |
Server Boost level 2 raises a server’s limit to 50 MB and level 3 raises it to 100 MB. If the server you post to is boosted, use the custom size field with that number.
No upload, no temporary storage, no account. Compression runs in WebAssembly and WebCodecs inside your browser, it even works offline once the page has loaded.
Instead of a fixed quality preset, a binary search closes in on the target byte size and keeps the highest quality that still fits. Files that already fit still get a visually lossless pass rather than being waved through.
WebCodecs prefers your GPU encoder and uses variable bitrate, so the same file size looks cleaner. Unsupported browsers fall back automatically.
AAC audio is copied through without re-encoding, and its real size is subtracted from the budget so sound never pushes you over the limit.
Re-encoding removes GPS coordinates, camera model and timestamps, so photos and screenshots do not leak your location.
The layout is fully responsive, pick a file straight from your camera roll instead of moving it to a computer first.
No. The entire compression pipeline runs in your browser and no code sends file contents anywhere. Open the Network tab in your developer tools and you will see zero upload requests after the page finishes loading.
Discord raised the free per-file limit from 10 MB to 20 MB in April 2026. Nitro Basic allows 50 MB and Nitro allows 500 MB. Separately, a server at Boost level 2 gets a 50 MB limit and level 3 gets 100 MB.
Usually the clip is simply too long. If the bitrate is already at the floor and the file still does not fit, that duration cannot reach the target at watchable quality. Trim the video, or use the custom size field with a boosted server limit. The last attempt is kept so you can still download it.
Some loss is unavoidable, but it is kept to a minimum. Images use a binary search for the highest quality that still fits the target, and videos use variable bitrate so complex scenes get more bits. When a file already fits the limit it is re-encoded at a visually lossless setting by default, usually a large saving you cannot see. Switch the “when the file already fits” option to keep the original if you would rather not touch it.
At equal quality WebP is roughly 25–30% smaller than JPEG, and both the Discord web client and apps display WebP fine, so WebP is the default recommendation. Pick JPEG when the recipient needs to open the file in older software.
Image compression works in Chrome, Edge, Firefox and Safari. Hardware-accelerated video compression needs WebCodecs, which Chrome and Edge support best. Firefox and Safari fall back to a slower compatibility mode automatically.
Up to 30 files per batch. Per-file size depends on your device memory, a desktop handles roughly 1 GB videos fine, while phones are better kept under 300 MB.
Not just Discord. Pick your destination and the tool loads the matching target size.