Skip to content

Private · in your browser

Convert to WebP or AVIF — free, private, no upload

Shift is a WebP and AVIF converter that runs entirely in this tab. Drop JPG, PNG, WebP or AVIF, pick an output codec, set quality, optionally cap width or height, then download a file or a ZIP. Photos are not posted to a conversion API. There is no account and no watermark.

Most “free converters” take your camera roll, store it, and re-encode on a machine you do not control. Shift does the opposite: Canvas for WebP, JPG and PNG; a local AVIF encoder only after a real capability probe — because native toBlob('image/avif') on many phones returns a lie. If this device cannot encode AVIF, the control is disabled and WebP still works.

WebP encode: …AVIF encode: …

Drop images here

JPG, PNG, WebP, AVIF, BMP, GIF — they never leave this tab.

Options

Output format

PNG ignores quality (lossless). WebP, AVIF and JPG use this slider.

How Shift converts images in the browser

Four steps, all on-device. For the long version see the conversion guide and WebP vs AVIF. Weigh both on one photo: compare. Delivery ceilings: WhatsApp, email, Android.

  1. 1

    Choose files on this device

    Use Choose files or drop images into the dashed area. Shift accepts JPG, PNG, WebP, AVIF, BMP and still GIF. Nothing is uploaded: the browser keeps a File handle in this tab. A HEIC from Camera Roll is rejected on purpose — convert that in HEIC Local, then come back. Large files get a memory warning before they lock the phone.

  2. 2

    Pick a codec, not a cloud preset

    WebP is the default because encode works on essentially every modern browser. AVIF is offered only after a capability probe (native Canvas is not trusted; a WASM encoder is tried next). JPG and PNG are the reverse path: open a WebP or AVIF as something a CMS or email client will take. Optional max width and height keep aspect ratio.

  3. 3

    Convert in the tab

    Convert runs createImageBitmap, draws to a canvas, then toBlob for WebP/JPG/PNG. AVIF goes through the local encoder when the badge says yes. Progress is per file. If one image fails, the rest still finish. There is no queue on a server and no email when it is done.

  4. 4

    Download one file or a ZIP

    Each result is named with a -shift suffix and the real extension. Two or more files can pack into a ZIP built here with JSZip. iPhone users get a Share sheet when the browser allows file sharing. No watermark is burned in. Clear the list and start over without reloading.

Why convert to WebP or AVIF at all

JPEG is still the default export from cameras and design tools, but it is a 1990s still-image codec. A 12-megapixel phone JPEG is often two to four megabytes before anyone has edited it. WebP (lossy or lossless) and AVIF (AV1 stills) typically land smaller at a similar viewing distance — which is why CDNs, documentation sites, and app stores keep asking for them. The catch is the encoder. Online tools that “convert to WebP” usually mean: upload, transcode with ImageMagick or libvips, email you a link. That is a privacy problem for passports, kids, interiors, and work screenshots, and it is a reliability problem when the queue is busy.

Shift’s product job is the codec change, not a generic “compress my vacation.” Crush exists for size-first JPG/PNG/WebP. Here the default call to action is Convert, the default output is WebP, and AVIF is honest about device support. If you only needed a smaller JPEG, you are in the wrong tool — and the UI will not pretend otherwise.

What happens to a file inside this tab

After you choose files, Shift checks size and magic bytes (JPEG SOI, PNG signature, RIFF/WEBP, AVIF ftyp brands). HEIC is refused with a pointer to HEIC Local. Each image is decoded with createImageBitmap (orientation when the browser supports it). A canvas is sized to the optional max width/height, the bitmap is drawn, then encoded. WebP/JPG/PNG use canvas.toBlob. AVIF uses a single-thread WASM encoder so it does not hang waiting for cross-origin isolation. Object URLs are revoked after download. Close the tab and the pixels are gone.

Quality is a slider from 10% to 100%, default 85%. PNG ignores it (lossless). AVIF quality is mapped onto the encoder’s 10–100 scale. Batch mode processes files one after another so a cheap phone is less likely to OOM than a worker pool would. The ZIP path is JSZip in-process — the same family pattern as Crush and Folio, with Shift filenames.

When WebP is the right output

Use WebP when the consumer might be an iPhone, a WordPress media library, a Slack upload, or an older Android WebView. Browser encode support is the reason Shift defaults here. A typical 24-megapixel JPEG from an iPhone export, converted at 85% with a max width of 1920, is usually a few hundred kilobytes of WebP that still looks like a photograph. Read the dedicated JPG to WebP page if that is your only job today.

When AVIF is worth it — and when it is not

AVIF often beats WebP on still photos at the same visual quality, especially large hero images. It is also the codec that breaks silently: a phone may report image/avif and hand you a JPEG-in-disguise. Shift’s badge (“AVIF encode: yes/no”) is the product surface for that. If the badge is no, do not hunt for a hidden toggle. Convert to WebP, or open the WebP vs AVIF comparison, or drop the same photo on compare to weigh WebP and AVIF at one quality. Going the other way — AVIF you received from a designer, back to JPG for email — is covered on AVIF to JPG.

Batch ZIP, memory, and why a file can get bigger

Two or more successful converts unlock Download ZIP. The archive is assembled in this tab; it is not a mailbox attachment we generate for you. Filenames pick up a -shift suffix and the real extension, so you can tell the original JPEG from the WebP sitting next to it. If two inputs share a stem, Shift keeps the ZIP entries unique instead of overwriting.

Memory is the only quota. Files over about 25 MB get a warning. Files over 80 MB are refused so Safari does not kill the tab. Four 48-megapixel exports at full resolution will also fail on a tired phone even if each file is under the byte cap — that is why max width exists. 1920 px is the web-hero default; 1280 is enough for cards and blog inline images. Empty max fields keep the pixel grid, which is rarely what you want.

Sometimes the WebP or AVIF is larger than the JPEG you started with. That happens with already-small screenshots, heavy chroma-subsampled JPEGs, or quality 95% on a graphic. Lower quality, cap width, or switch to PNG for UI with type. Shift reports original size → new size on the result row so you can decide without guessing from the filename.

iPhone, batch, and what this site is not

iOS Safari is a first-class path: file picker, Share-sheet download, orientation, memory copy. Details live on iPhone photos. Batch ZIP is for a folder of product shots, not a 200-file dump on a 3 GB phone — use max width. Shift does not strip GPS (that is Strip), does not merge PDFs (Folio), does not remove backgrounds, and does not add watermarks. HEIC is refused on purpose after reading the ftyp brand. Animated WebP/AVIF is not a v1 pipeline — you get a still frame if the browser hands one over.

What Shift will refuse

Empty files, renamed text, PDFs, videos, and HEIC/HEIF. Magic bytes are checked, not only the extension, so.jpg that is actually a ZIP is rejected with a sentence instead of a blank canvas. If decode fails after the header looked fine, the row shows an error and the rest of the batch continues. There is no server-side job to resume after a crash: reload and convert again.

Legal pages: Privacy, Terms, About, Contact. Step-by-step encoding is on the conversion guide.

FAQ

Does Shift upload my images to convert them?

No. Shift never posts your files to a conversion server. JPG, PNG and WebP encode with this tab’s Canvas (createImageBitmap + toBlob). AVIF encode uses a local WebAssembly codec (jSquash / libavif) loaded as a static asset from this site — not a third-party API. You can go offline after the page and WASM have loaded and still convert.

When should I pick WebP instead of AVIF?

Pick WebP when you need the file to open everywhere: iMessage, older Android, many CMS uploaders, and almost every current browser. WebP is Shift’s default because encode support is nearly universal on phones and laptops from the last several years. Use AVIF when the destination already accepts it (modern Chrome, Edge, Firefox, recent Safari) and you want a smaller still image at a similar visual quality.

Why is AVIF sometimes disabled on my phone?

Native canvas.toBlob('image/avif') is missing or lies on a lot of mobile browsers — it may return a blob that is not actually AVIF. Shift probes twice: a native 1×1 encode checked with AVIF magic bytes (ftyp/avif), then a WASM encoder. If both fail or time out, the AVIF button is disabled and the badge says no. That is not a paywall. Convert to WebP instead.

Can I convert WebP or AVIF back to JPG or PNG?

Yes. Drop a .webp or .avif file and set output to JPG or PNG. Decode uses the browser first. If native AVIF decode fails, Shift falls back to the same local WASM decoder. JPG output fills a white background so transparent pixels do not become black.

Will converting to WebP or AVIF ruin photo quality?

Lossy WebP, AVIF and JPG use the quality slider (default 85%). At 85% most camera JPEGs look intact while shrinking a lot. Drop to 70% for thumbnails and social crops. PNG output is lossless and ignores the slider — use it when you need crisp UI, screenshots or graphics with text. You can also cap max width or height so a 4000-px export is not re-encoded at full resolution.

Is the batch ZIP still private?

Yes. After Convert, Download ZIP builds an archive in this tab with JSZip. The zip never goes to Shift’s servers. Filenames look like photo-shift.webp. If two files share a stem, names are kept unique inside the archive.

Do I need an account? Is there a watermark or daily limit?

No account, no watermark, no quota. The only cap is this device’s memory. Files over about 25 MB get a warning; files over 80 MB are refused so the tab does not crash. That is a safety guard, not a plan upgrade.

Can Shift convert HEIC from iPhone?

No. HEIC / HEIF is a different job. Shift looks at the file header (ftyp brands) and will tell you to use HEIC Local first. After you have a JPG or PNG, bring it back here for WebP or AVIF.

Does it work on iPhone Safari?

Yes. Use Choose files (drag-and-drop is unreliable on iOS). EXIF orientation is applied when the browser supports it. Download uses a file Share sheet when iOS allows sharing files; otherwise a normal download link. Large Camera Roll exports may need a max width of 1920 or 1280 if the phone runs out of memory.

What formats can I drop in?

JPG / JPEG, PNG, WebP, AVIF, BMP and static GIF. Files are checked by type and by magic bytes, not only the extension. A renamed .txt will be rejected. Animated GIF/WebP/AVIF is not a v1 pipeline — you get a still frame if the browser hands one over.

Is Shift the same as Crush, the image compressor?

No. Crush’s job is smaller files. Shift’s job is changing codec: get a WebP or AVIF, or open a WebP/AVIF as JPG/PNG. You can set quality here, but the product is format convert, not a compression-first UI.

Does Google AdSense see my photos?

No. Ads, when they are live, are independent of the converter. Image bytes stay in memory in this tab. Hosting logs (Vercel) may record that someone requested a page, not the contents of a dropped photo.

How does the quality slider map to AVIF?

The slider is 0.1–1.0. For AVIF, Shift maps that onto the encoder’s quality scale (about 10–100). Default 0.85 is a practical still-photo setting. PNG ignores it. If AVIF encode is off, the slider still applies to WebP and JPG.

Who runs Shift and how do I contact you?

Shift is a free tool from Ultimatum. Email ultaultimatum@gmail.com (also on the Contact page). Do not email photos you do not want stored in a mailbox — the converter itself does not need email.

If I send the WebP as a WhatsApp photo, is that the file Shift wrote?

Usually not. Photo send recodes the frame. Your WebP often leaves as their JPEG. Send as a document if the other person must keep the bytes. Shift does not sit inside WhatsApp.

Will Gmail show my AVIF in the message body?

Often no. Many mail clients do not paint AVIF inline. Attach JPG if they need to see the picture without downloading. Gmail’s 25 MB cap is on the message, not on Shift.

Chrome on my Android encoded AVIF. Why did their phone show a blank?

Their app is probably a WebView or an older Samsung Internet, not the Chrome you used. Native toBlob can also lie and hand you a JPEG named .avif. Trust Shift’s badge. Send WebP or JPG when the other device is unknown.

Does Shift strip GPS or bind pages into a PDF?

No. GPS/EXIF wipe is a different tool. Images-to-PDF is a different tool. Shift’s job is codec in this tab.

Need the rest of the local-first tools?

Shift is a free WebP and AVIF converter from Ultimatum. Other utilities that keep files on the device live on the hub.

Ultimatum hub