A chat bubble is not the file Shift wrote.
Photo send recodes. Document send carries bytes. Those are not the same job.
People convert a JPEG to WebP here, tap WhatsApp, and send it as a photo. The other person gets WhatsApp’s frame, often a JPEG, often softer, often without the name you saved. Bind’s cousin problem is pages; this page is only codec. The converter lives on the homepage. Safari path: iPhone.
Photo send versus document send
Send as photo. WhatsApp recodes. WebP usually leaves as their JPEG. AVIF in the photo pipe is worse: refuse, flatten, or a grey tile. HD toggles change their recode. They do not preserve Shift’s encoder.
Send as document. You attach bytes. If those bytes are the Shift download from Files or Downloads, the other person can keep a WebP. Their preview may still fail to paint AVIF. Document is a pipe, not a decoder you control.
Status and View once are delivery modes. They do not keep a codec. Forwarding a bubble forwards the recode, not the Shift file.
What Shift does before you open WhatsApp
Default output is WebP because it opens in more places than AVIF. Quality slider is lossy. PNG out ignores the slider. If the other person must see a picture inside the thread, convert to JPG on purpose — that is the boring object chat clients already know. Codec choice long-form: WebP vs AVIF.
HEIC from Camera Roll is refused here. Convert that still first, then Shift. One sentence, not a chapter. iPhone buttons: iPhone.
The ceiling
Shift cannot patch WhatsApp. It cannot publish a fake “WhatsApp accepts AVIF” megabyte. A 40-megapixel WebP may still be heavy as a document. Cap max width to 1920 before convert if the chat is the destination. Desktop WhatsApp opens a disk dialog that defaults to Pictures — Pictures is JPEGs. Point it at Downloads.
Steps
- Convert in Safari or desktop Chromium. Prefer WebP unless they asked for AVIF by name.
- Save the file. On iPhone, Files, not Recents. Recents is the photo stack.
- WhatsApp → attach document → that file. Skip the photo grid.
- If they insist on photos, convert to JPG here first, then send as photo knowing it will recode again. Say so.
- If the document is huge, lower max width. Do not “compress inside WhatsApp” and hope the codec survives.
What looks like a bug and is not
- They received a soft JPEG — photo send. Send the Shift file as document.
- AVIF preview blank in chat — their client. Send WebP or JPG.
- Desktop attached DCIM — wrong folder.
- View once expired — delivery mode, not Shift.
Forward from the thread is not forward from Files
A photo you already sent sits in the thread as WhatsApp’s recode. Forwarding that bubble forwards the recode. It does not resurrect the WebP Shift wrote. Attach the Files object again if the packet must stay a WebP. Starred messages are not a codec archive.
Group admin who wanted “one small file”
School parents dump a burst of 48 MP JPEGs into the group. Convert once, cap width, WebP as document, caption the pixel size. Everyone else can keep sending photos. Shift does not moderate the group and does not unzip their burst.
Do not screenshot a WebP preview into the chat
Preview → screenshot → send photo. You invented a new JPEG with a new crop and a new recode. Send the file, or convert to JPG here on purpose.
WhatsApp Web
Web attaches from the computer dialog. The dialog loves Pictures. Shift download is Downloads. If you converted on the phone and never copied the file, Web cannot attach a file that is only on the phone.
Stickers, status, view-once
None of those keep Shift’s encoder. A sticker is their format. Status expires. View-once is a delivery flag. Convert for a file you still hold in Files.
Honesty limits
Shift does not end-to-end encrypt the file for you and does not unsend a photo stack. Success is: a WebP or JPG you opened, attached as a document, from Files or Downloads. If you still dump Recents into the thread, you sent photos. Mail caps: email. Unknown Android:Android.
Why photo send cannot keep a WebP
Chat apps treat “photo” as a frame they own. They resize, they pick a JPEG quality, they write their own filename, they store a copy in Shared Media. That pipeline exists so a cheap phone can show a bubble without downloading an original. It is not a file-transfer protocol. Shift’s output is a file-transfer object. Mixing the two is how a clean WebP becomes a soft JPEG with a new hash.
HD / “best quality” still runs their encoder. The toggle changes how hard they recode, not whether they recode. A 4K WebP sent as a photo is still their frame. The only path that carries Shift’s bytes is document attach from the folder you saved.
AVIF inside a chat bubble
AVIF as a photo is the worst of the three outputs for WhatsApp. Many clients refuse the type, flatten it to JPEG, or paint a grey tile. Document send can carry the bytes, but the other person’s preview still depends on their app. If they must open the picture inside the thread without tapping Download, convert to JPG here and send that as a photo on purpose. Do not promise them an AVIF bubble.
If they asked for AVIF by name — a web team, a picture tag — send the Shift file as a document and write “AVIF attached, open on desktop” in the caption. Caption text does not preserve a codec. It only tells a human what to do with the file.
Communities, broadcasts, and catalogs
A Community announcement and a one-to-one chat use the same photo pipe. Catalog photos on WhatsApp Business are their recode for a shop grid. Shift does not publish to a catalog and does not keep a listing in sync. Convert here, save, then upload from Files if their desktop tool asks for a still. Prefer JPG for that form when the other side is unknown.
Broadcast lists multiply the same recode. If twelve people needed the WebP, attach the document once in a group, or send the file twelve times as a document. Forwarding the first bubble twelve times forwards twelve JPEGs.
Shared Media is their copy
On the other phone, Shared Media / Gallery often shows WhatsApp’s stored frame, not your Downloads file. That is why they swear they “got a JPEG.” They did. Their gallery is not a witness for Shift. Ask them to open the document from the chat, not from the album WhatsApp built.
On your own phone the same trap exists. After a photo send, Recents fills with their recode. The Shift download still sits in Files or Downloads with the -shift.webp name. Attach that object next time. Do not pick the Recents thumbnail that looks similar.
Desktop versus phone attach
WhatsApp Desktop and WhatsApp Web both open a disk dialog. Default folder is Pictures or DCIM. Those folders are camera JPEGs. Shift writes into the browser download directory. Change the dialog. If you converted on the phone and you are attaching on the computer, copy the file first. Cloud placeholders that have not finished downloading attach as empty stubs.
Multi-select in the photo grid is still photo send. Multi-select in a file dialog can be document send. Look at the picker title. If it says Photos, you are in the recode pipe.
Size before the chat, not after
A 48-megapixel WebP is a bad chat document even when the codec is honest. Cap max width to 1920 for a group, 1280 for a thumbnail someone will open on a bus. Quality 85% is enough. Do not convert at full resolution and then tap WhatsApp’s own compress. That second pass is their JPEG again.
Batch ZIP is for your archive, not for the thread. Unzip, attach the one file they asked for. A ZIP inside a chat is a document they may not unpack on a phone.
What this page is not
This is not a GPS wipe. This is not “twelve bubbles become one PDF.” This is not a JPEG quality slider as the product. Shift changes codec in this tab. WhatsApp decides how a photo bubble is stored. Buttons for the convert itself stay on the homepage. Click-by-click encode: guide. Reverse path if they sent you an AVIF you cannot open: AVIF to JPG.
WhatsApp questions
They said they got a blurry JPEG. Where is the WebP?
You sent a photo. WhatsApp recoded the frame. Send the Shift file as a document, or convert to JPG on purpose before photo send.
Can I send AVIF as a WhatsApp photo?
Do not count on it. Many clients refuse or flatten AVIF in the photo pipe. Document send carries bytes; preview still depends on their app.
WhatsApp Desktop grabbed Pictures/*.jpg. Is that my WebP?
No. Point the dialog at Downloads and the Shift file. Pictures is the camera stack.
Status or View once — does that keep the codec?
No. Those are delivery modes. They recode or expire. They do not preserve Shift’s bytes.