<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Nawal]]></title><description><![CDATA[Nawal]]></description><link>https://nawalx197.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 28 Oct 2026 23:43:35 GMT</lastBuildDate><atom:link href="https://nawalx197.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[TinyPNG vs Squoosh: Which Image Compressor Should You Use?]]></title><description><![CDATA[TinyPNG and Squoosh both shrink images for free, but they solve different problems. TinyPNG runs on a server and handles batches of 20 images at a time…]]></description><link>https://nawalx197.hashnode.dev/tinypng-vs-squoosh-which-image-compressor-should-you-use</link><guid isPermaLink="true">https://nawalx197.hashnode.dev/tinypng-vs-squoosh-which-image-compressor-should-you-use</guid><category><![CDATA[Image Compression]]></category><category><![CDATA[web performance]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[webdev]]></category><dc:creator><![CDATA[Nawal]]></dc:creator><pubDate>Tue, 27 Oct 2026 06:21:48 GMT</pubDate><content:encoded><![CDATA[<p>TinyPNG and Squoosh both shrink images for free, but they solve different problems. TinyPNG runs on a server and handles batches of 20 images at a time. Squoosh runs entirely in your browser, one image at a time, with more control over the output. Pick TinyPNG for batch convenience, Squoosh for privacy and codec control, and read on for the cases where neither fits.</p>
<h2>What is the real difference between TinyPNG and Squoosh?</h2>
<p>The core difference is where your files get processed and how many you can handle at once. TinyPNG uploads your images to its servers and compresses up to 20 per free session. Squoosh processes everything inside your browser, so nothing leaves your device, but it handles one image at a time. That split drives almost every other difference between them.</p>
<p>Everyone who compresses images eventually hits this question. TinyPNG is the default "make this smaller" tool people reach for. Squoosh is the one developers recommend when someone asks for something private and free. They look interchangeable from a distance, but the differences matter once you pick a workflow.</p>
<h2>How do TinyPNG and Squoosh compare side by side?</h2>
<p>TinyPNG wins on batch convenience and integrations, while Squoosh wins on codec control, offline use, and privacy. Neither tool lets you type an exact target file size. The table below maps the differences, and the sections after it explain when each row should change which tool you open.</p>
<table>
<thead>
<tr>
<th></th>
<th>TinyPNG</th>
<th>Squoosh</th>
</tr>
</thead>
<tbody><tr>
<td>Where files are processed</td>
<td>TinyPNG's servers (upload required)</td>
<td>Your browser (nothing is uploaded)</td>
</tr>
<tr>
<td>Free batch limit</td>
<td>20 images per session, 5 MB per file</td>
<td>1 image at a time</td>
</tr>
<tr>
<td>Price</td>
<td>Free tier; Web Pro $39/year; Web Ultra $149/year</td>
<td>Free, no paid tier</td>
</tr>
<tr>
<td>Format control</td>
<td>JPEG, PNG, WebP, AVIF</td>
<td>JPEG (MozJPEG), PNG (OxiPNG/OptiPNG), WebP, AVIF, JPEG-XL, and more</td>
</tr>
<tr>
<td>Target an exact file size</td>
<td>No</td>
<td>No</td>
</tr>
<tr>
<td>API / integrations</td>
<td>Yes, mature API and CMS plugins</td>
<td>No</td>
</tr>
<tr>
<td>Works offline</td>
<td>No</td>
<td>Yes, as a Progressive Web App after first load</td>
</tr>
<tr>
<td>Open source</td>
<td>No</td>
<td>Yes</td>
</tr>
</tbody></table>
<p>TinyPNG optimizes for convenience: drop a batch and download the results. Squoosh optimizes for control: you get sliders for quality, resize options, palette reduction, and a choice of codecs, plus a side-by-side preview with a draggable divider so you can see exactly what each setting does to quality before you save.</p>
<h2>Which one compresses better?</h2>
<p>Both compress well enough that JPEG and PNG differences are hard to spot at normal display size. TinyPNG uses its own smart lossy method, so results look clean without touching a setting. Squoosh hands you codecs like MozJPEG and lets you dial quality yourself. Neither wins on quality alone, so pick based on how many decisions you want to make.</p>
<p>TinyPNG is better when you want zero decisions. Squoosh is better when you care about a specific format or want to dial quality against file size yourself. If you just need a photo smaller with no fuss, either one does the job.</p>
<h2>Which one is better for privacy?</h2>
<p>Squoosh wins on privacy. Everything runs in your browser, so your images never touch a server. TinyPNG uploads every file for processing, which barely matters for screenshots and blog art but settles the question for client photos, ID scans, or anything under a non-disclosure agreement. Where your data goes is the difference most roundups skip.</p>
<p>This matters more in 2026 than it used to. File size comparisons are easy to write, but the interesting difference between these tools is where your data goes. I wrote an earlier post that compares TinyPNG alternatives on privacy.</p>
<h2>How much do TinyPNG and Squoosh cost?</h2>
<p>TinyPNG is free for 20 images per session at up to 5 MB each, with Web Pro at $39 a year and Web Ultra at $149 a year for larger files and unlimited compressions. Squoosh costs nothing, with no tiers, no accounts, and no paid version. Check TinyPNG's pricing page before you buy, since subscription numbers change.</p>
<p>There is also a developer API with its own pricing on TinyPNG's side. Squoosh is an open-source project from Google Chrome Labs, and the web app is the whole product. I re-checked TinyPNG's pricing page while writing this, and the free limits and annual prices above match what it shows today.</p>
<h2>When should you pick TinyPNG?</h2>
<p>Pick TinyPNG when you have a batch of images and want them smaller with almost no setup. The 20-image free batch covers occasional work, and the quality is good enough that you can skip the settings panel entirely. TinyPNG also wins when your team needs an API or a WordPress plugin that Squoosh does not offer.</p>
<p>The trade-off is the upload. If your files are sensitive or your connection is slow, sending every image to a server costs you time and bandwidth.</p>
<h2>When should you pick Squoosh?</h2>
<p>Pick Squoosh when control or privacy matters more than batch speed. Codec choice matters if you are converting to WebP or AVIF and want to preview each setting. Browser-local processing matters if images should not leave your machine. Offline mode matters anywhere the network is unreliable, and the trade-off is repeating the process for every image.</p>
<p>The trade-off is the single-file workflow. Optimizing ten images means repeating the process ten times, which gets old fast. Squoosh is a precision instrument for one image at a time.</p>
<h2>What can neither tool do?</h2>
<p>Neither TinyPNG nor Squoosh lets you type an exact target size. If an upload form rejects anything over 100KB, you compress, check the result, nudge quality, and try again until the file fits. That loop works for one photo, but doing it for twenty images is slow guesswork that eats an afternoon.</p>
<p>That exact-KB gap is what I built SnapShrink for. It combines the parts of each tool that people actually want: batch processing like TinyPNG, browser-local privacy like Squoosh, and a target-size mode where you type "100" and the encoder hits it automatically. You can read the full walkthrough on <a href="https://getsnapshrink.com/blog/compress-image-to-exact-kb/">how to compress an image to an exact KB size</a>.</p>
<h2>Is there a third option worth trying?</h2>
<p>If you need a private batch that also hits a hard size limit, neither tool covers the full combination. SnapShrink does: up to 10 images free per session, no per-file size cap, on-device processing, WebP built in, and a target-KB mode. Pro costs $9 once, which is less than a year of TinyPNG Web Pro.</p>
<p>Plenty of write-ups already praise browser-local compression, batching, and watching a KB budget. Fair enough, those ideas are not unique. What SnapShrink adds on top is the typed target: you enter 100, and the encoder binary-searches quality until the download lands at or under that budget, across the whole batch, without an upload step. You are not nudging a quality slider and re-checking file size by hand after every try.</p>
<p>It does not replace both tools. If you need an API, TinyPNG still wins. If you want codec-level control over a single image, Squoosh still wins. SnapShrink wins the middle case: batches, privacy, and exact sizes. Try the <a href="https://getsnapshrink.com/">free image compressor</a> and see which camp you fall in.</p>
<h2>FAQ</h2>
<h3>Is Squoosh really free?</h3>
<p>Yes. Squoosh is an open-source project from Google Chrome Labs with no paid tier, no accounts, and no usage limits. The web app at squoosh.app is the complete product.</p>
<h3>Does TinyPNG upload my images to its servers?</h3>
<p>Yes. TinyPNG's compression runs server-side, so every image you drop on the page is uploaded, processed, and sent back. That is also why the free tier caps files at 5 MB each.</p>
<h3>Can Squoosh compress multiple images at once?</h3>
<p>No. The Squoosh web app processes one image at a time. For batches you repeat the steps per image, which is the main reason people reach for a batch tool instead.</p>
<h3>Can either tool compress to an exact file size?</h3>
<p>No. Neither TinyPNG nor Squoosh has a target-size mode. You adjust quality and check the output until the file fits, which is trial and error. For a walkthrough of typing a hard KB budget, see <a href="https://getsnapshrink.com/blog/compress-image-to-exact-kb/">how to compress an image to 100KB</a>.</p>
<h3>Which is better for converting images to WebP or AVIF?</h3>
<p>Squoosh, because it gives you a choice of codecs and a live preview of what each one does to quality. TinyPNG supports WebP and AVIF output too, but with fewer controls. For when WebP beats PNG on the web, see the <a href="https://getsnapshrink.com/blog/webp-vs-png/">WebP vs PNG guide</a>.</p>
<h3>Which one is better for website speed and Core Web Vitals?</h3>
<p>Squoosh has a small edge. Core Web Vitals reward small files in modern formats, and Squoosh gives you direct control over both: AVIF output with a quality slider you can tune against the preview. TinyPNG also shrinks files well, which is most of the battle. The bigger win is serving WebP or AVIF at the right dimensions, and either tool can produce those.</p>
<h3>Does Squoosh work well on mobile?</h3>
<p>Yes. Squoosh runs in the mobile browser and installs as a Progressive Web App, so it keeps working offline after the first load. The controls are usable on a phone screen. TinyPNG works in a mobile browser too, but every image still uploads first, which is slow on cellular data.</p>
<h3>Do TinyPNG and Squoosh strip EXIF metadata?</h3>
<p>TinyPNG strips metadata during compression on its servers, per its documentation. With Squoosh, nothing leaves your device, so there is no server copy of your metadata to worry about. Whether EXIF survives in the output depends on the codec and settings you choose, so check the output file before publishing if metadata must be gone. For the full walkthrough, see <a href="https://getsnapshrink.com/blog/strip-metadata-from-photos/">how to strip metadata from photos</a>.</p>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://tinypng.com/pricing/web">TinyPNG Web Pro and Web Ultra pricing</a></li>
<li><a href="https://squoosh.app/">Squoosh web app</a></li>
<li><a href="https://getsnapshrink.com/blog/how-to-compress-jpeg-file-size/">How to compress JPEG file size</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[WebP vs PNG: Which Image Format Should You Use in 2026?]]></title><description><![CDATA[WebP vs PNG compared on file size, transparency, and browser support, plus the workflow that ends the debate: keep PNG masters, serve WebP.]]></description><link>https://nawalx197.hashnode.dev/webp-vs-png-which-image-format-should-you-use-in-2026</link><guid isPermaLink="true">https://nawalx197.hashnode.dev/webp-vs-png-which-image-format-should-you-use-in-2026</guid><category><![CDATA[Image Compression]]></category><category><![CDATA[web performance]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[webdev]]></category><category><![CDATA[JavaScript]]></category><dc:creator><![CDATA[Nawal]]></dc:creator><pubDate>Sat, 24 Oct 2026 06:11:53 GMT</pubDate><content:encoded><![CDATA[<h1>WebP vs PNG: Which Image Format Should You Use in 2026?</h1>
<p>The WebP vs PNG question is a delivery decision, not a specs debate. Pick the wrong format and your pages carry weight they do not need; pick the right one and you get the easiest performance win on your site. Here is what each format is actually for, where each one wins, and the workflow that lets you stop choosing.</p>
<h2>WebP vs PNG in 60 seconds</h2>
<p>WebP is Google's image format from 2010, available in lossy and lossless modes. In lossless mode it runs about 26% smaller than PNG; in lossy mode it runs 25 to 34% smaller than JPEG at similar quality, per Google's own documentation. PNG answers with universal compatibility, deeper color support, and no upper bound on dimensions.</p>
<table>
<thead>
<tr>
<th></th>
<th>WebP</th>
<th>PNG</th>
</tr>
</thead>
<tbody><tr>
<td>Compression</td>
<td>Lossy and lossless modes</td>
<td>Lossless only</td>
</tr>
<tr>
<td>Typical savings</td>
<td>~26% smaller than PNG (lossless); 25–34% smaller than JPEG (lossy) at similar quality</td>
<td>The baseline</td>
</tr>
<tr>
<td>Transparency</td>
<td>Yes, in both lossy and lossless modes</td>
<td>Yes (alpha channel)</td>
</tr>
<tr>
<td>Animation</td>
<td>Yes</td>
<td>No</td>
</tr>
<tr>
<td>Browser support</td>
<td>Every modern browser displays it; Chrome, Edge, Firefox, and modern Safari can also encode it in-browser</td>
<td>Universal: everything reads PNG</td>
</tr>
<tr>
<td>Color depth</td>
<td>8 bits per channel</td>
<td>Up to 16 bits per channel</td>
</tr>
<tr>
<td>Max dimensions</td>
<td>16,383 x 16,383 px</td>
<td>Effectively unlimited</td>
</tr>
<tr>
<td>Best for</td>
<td>Images served on the web</td>
<td>Masters, editing, print, compatibility</td>
</tr>
</tbody></table>
<p><img src="https://getsnapshrink.com/blog/img/img-png-vs-webp-filesize.png?v=20261006b" alt="A 2.4 MB PNG file next to a 1.1 MB WebP file, labeled 54 percent smaller" /></p>
<p><em>Sources: compression figures from <a href="https://developers.google.com/speed/webp">Google's WebP documentation</a>; max dimensions from <a href="https://developers.google.com/speed/webp/faq">Google's WebP FAQ</a>.</em></p>
<p>Two things the table hides: WebP's only real weakness is compatibility, not capability. PNG's only real weakness is file size. Everything below follows from that.</p>
<h2>When WebP wins</h2>
<p>WebP wins anywhere an image gets served to a browser. At similar visual quality it is roughly a quarter smaller than PNG, and that saving multiplies across every image on the page. On galleries, product listings, and blog archives, that is the gap between a page that feels instant and one that drags, especially on mobile data.</p>
<p><strong>Anything served on a website.</strong> This is the core case. File weight feeds directly into Core Web Vitals like LCP, which is one more reason to care.</p>
<p><strong>Transparency without the PNG tax.</strong> PNG's alpha channel is great and WebP matches it, including in lossy mode, which JPEG cannot do at all. A transparent logo or UI element as WebP is typically much smaller than the same PNG with no visible difference.</p>
<p><strong>Photo-heavy pages.</strong> Lossy WebP at a sensible quality setting beats PNG by a wide margin on photographs, where PNG's lossless compression is the wrong tool entirely. If your photos are currently PNGs, switching them to WebP is usually the single biggest image win available.</p>
<p><strong>Replacing simple GIFs.</strong> WebP supports animation with far better compression than GIF. One honest caveat about tooling: most batch converters treat GIF inputs as stills and convert only the first frame. If you need animated output, use a dedicated GIF-to-WebP tool, not a batch compressor.</p>
<h2>When PNG still wins</h2>
<p>An honest comparison has to say this plainly: there are jobs where PNG is still the right format, and converting everything to WebP would be a mistake. PNG wins when the image is a working file rather than a delivered one: masters, print, brand kits, and anywhere someone else's system touches it.</p>
<p><strong>Editing masters.</strong> Keep your originals as PNG (or whatever lossless source you have). Every conversion is a generation of change; you want the master to be the highest-fidelity version. Convert copies for delivery, never the only copy you have.</p>
<p><strong>Print and brand-kit delivery.</strong> Print workflows, design tools, and brand kits expect PNG. Nobody wants a <code>.webp</code> in a logo package. Deliver what the recipient's toolchain accepts.</p>
<p><strong>Legacy systems and email clients.</strong> Older email clients, some CMS plugins, and partner systems that ingest images may reject WebP outright. When someone else's system is in the loop, PNG is the safe format.</p>
<p><strong>Deep color.</strong> PNG supports up to 16 bits per channel, per the <a href="https://www.w3.org/TR/png/">W3C PNG specification</a>. If you are working with high-bit-depth sources, PNG preserves what WebP's 8-bit channels cannot.</p>
<p><strong>Enormous images.</strong> WebP tops out at 16,383 x 16,383 pixels (<a href="https://developers.google.com/speed/webp/faq">WebP FAQ</a>). For poster-size or survey imagery above that, PNG is the format.</p>
<p>None of this is an argument against WebP for web delivery. It is an argument for keeping both formats in your life, each doing its job.</p>
<h2>The practical workflow: keep PNG masters, serve WebP</h2>
<p>People who do this well do not convert files one at a time in a panic before launch. They run a simple pipeline: untouched PNG masters in a private folder, a small sample converted to lock in settings, then one batch pass for the whole folder. The site serves WebP; the private folder keeps PNG.</p>
<ol>
<li><p><strong>Keep masters in a private folder.</strong> Originals stay PNG, untouched, in a folder that never gets uploaded anywhere. This is your source of truth.</p>
</li>
<li><p><strong>Convert a representative sample first.</strong> Pick 3-5 images that cover your range: a photo, a screenshot with text, a transparent graphic. Compare each against the original side by side at real display size.</p>
</li>
<li><p><strong>Lock the settings.</strong> Once the sample looks right, those quality settings apply to the whole folder. No per-image fiddling.</p>
</li>
<li><p><strong>Batch-convert the folder.</strong> Select everything, convert in one pass, download the batch as a ZIP. Name files consistently before you convert so the ZIP drops straight into your theme or CMS image directory without renaming.</p>
</li>
<li><p><strong>Ship WebP, keep PNG.</strong> When you need to re-edit, you go back to the master, not the compressed copy.</p>
</li>
</ol>
<p>One more thing the pipeline surfaces: re-encoding an image typically drops EXIF data (camera settings, and sometimes location) along the way. If you publish photos, read <a href="https://getsnapshrink.com/blog/strip-metadata-from-photos/">what image metadata gives away and how to strip it</a> before you batch-convert.</p>
<h2>Should I use WebP or PNG on a website?</h2>
<p>Short version: WebP for everything the browser displays, PNG for everything else. That sentence answers it for anyone who searched this comparison, but the edge cases are where people get burned. The most common real-world mistake is not choosing WebP; it is converting the only copy and deleting the master, or shipping WebP into a system that cannot read it (hello, email newsletters).</p>
<p><strong>Use WebP</strong> for hero images, thumbnails, blog media, product photos, and any image where file weight affects load time. If a destination supports WebP (modern browsers, most CDNs, most static site generators), it is the strong default.</p>
<p><strong>Keep PNG</strong> for the five cases in the previous section.</p>
<p><strong>For logos specifically:</strong> serve WebP on the site, keep PNG in the brand kit. The transparent-logo case is where WebP's savings are most dramatic, and it is also where a PNG fallback matters most for compatibility.</p>
<p>And if you are wondering "which is better" in the abstract: neither. They are tools. The better question is always "better for what?"</p>
<h2>Convert PNG to WebP without uploading your files</h2>
<p>Most PNG-to-WebP converters work like this: you upload your files to their server, their encoder does the work, and you have created a copy of your images on someone else's disk. SnapShrink works the other way. The File API reads your images inside the browser tab, a Web Worker encodes them locally, and the bytes never leave your machine.</p>
<p>You do not have to take that on faith: open DevTools, switch to the Network tab, run a batch, and watch for uploads. There will not be any. This is documented on the <a href="https://getsnapshrink.com/webp-converter/">WebP converter page</a> itself, which is the right place to be skeptical of marketing copy, including this post.</p>
<p><img src="https://getsnapshrink.com/blog/img/img-webp-converter-page.png?v=20261006b" alt="SnapShrink's free WebP converter page, highlighting in-browser conversion with no upload to servers" /></p>
<p>The practical version, using the <a href="https://getsnapshrink.com/webp-converter/">free WebP converter</a>:</p>
<ol>
<li>Open the <a href="https://getsnapshrink.com/app/">SnapShrink image compressor</a> (no account, no install).</li>
<li>Set the output format to WebP.</li>
<li>Drop your PNGs (or JPGs) onto the drop zone: one file or a whole folder.</li>
<li>Optionally set a Target KB value if a portal demands a hard size cap. The tool searches for the quality setting that fits, so you can convert to WebP and hit "under 100KB" in one pass.</li>
<li>Download files individually or grab the whole batch as a ZIP.</li>
</ol>
<p>The first 10 images per session are free. Because the encoding happens in a Web Worker, the tab stays responsive while a big batch churns through.</p>
<p>Converting to WebP is also a quality-control moment. If you are unsure how aggressive to be with the quality slider, the guide to <a href="https://getsnapshrink.com/blog/image-compression-without-losing-quality/">compressing images without losing quality</a> walks through what to look at before you commit to settings for a whole folder.</p>
<h2>Frequently asked questions</h2>
<p><strong>Is WebP better than PNG?</strong></p>
<p>For web delivery, yes: smaller files at similar quality, with transparency and animation support. For masters, editing, print, and compatibility, no: PNG is still the right format. "Better" depends entirely on the job.</p>
<p><strong>Does converting PNG to WebP lose quality?</strong></p>
<p>Only if you choose lossy mode and push the quality slider too low. Lossless WebP is pixel-for-pixel identical to the source at roughly 26% smaller (Google's figure). Convert a representative sample first and compare it against the original at real display size before batch-converting.</p>
<p><strong>Can I use WebP everywhere?</strong></p>
<p>Almost. All modern browsers display WebP (<a href="https://caniuse.com/webp">browser support data</a>). The exceptions sit outside the browser: older email clients, some CMS plugins, print workflows, and partner systems that only accept PNG or JPEG. Serve WebP on the site; keep PNG for those.</p>
<p><strong>Which format should I use for logos with transparency?</strong></p>
<p>WebP on the website: the file-size savings on transparent graphics are substantial. PNG in the brand kit and anywhere the logo gets handed to someone else's toolchain.</p>
<hr />
<p><em>Nawal Shrestha, founder of SnapShrink, building privacy-first browser tools.</em></p>
<p><em>Try it: <a href="https://getsnapshrink.com/webp-converter/">free WebP converter</a> (no signup, no upload, first 10 images free per session).</em></p>
]]></content:encoded></item><item><title><![CDATA[How to Strip Metadata from Photos Before You Share Them]]></title><description><![CDATA[Originally published on the SnapShrink blog. Every photo your phone takes ships with a hidden data file: GPS coordinates of where you stood, the exact date…]]></description><link>https://nawalx197.hashnode.dev/how-to-strip-metadata-from-photos-before-you-share-them</link><guid isPermaLink="true">https://nawalx197.hashnode.dev/how-to-strip-metadata-from-photos-before-you-share-them</guid><category><![CDATA[Image Compression]]></category><category><![CDATA[privacy]]></category><category><![CDATA[webdev]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[web performance]]></category><dc:creator><![CDATA[Nawal]]></dc:creator><pubDate>Tue, 20 Oct 2026 06:24:26 GMT</pubDate><content:encoded><![CDATA[<h1>How to Strip Metadata from Photos Before You Share Them</h1>
<p><em>Originally published on the <a href="https://getsnapshrink.com/blog/strip-metadata-from-photos/">SnapShrink blog</a>.</em></p>
<p>Every photo your phone takes ships with a hidden data file: GPS coordinates of where you stood, the exact date and time, your camera model, and sometimes a thumbnail of the original image. Stripping that metadata before you post, email, or upload takes seconds and changes zero pixels. Leave it in, and anyone who downloads the original can read where and when you took it.</p>
<p>This guide covers what is hiding in your files, who should care most, how to check, which platforms clean your files for you (and which do not), and how to strip metadata without uploading your photos anywhere.</p>
<h2>What metadata is hiding in your photos</h2>
<p>Your phone embeds EXIF metadata in every photo it takes: GPS coordinates of where you stood, the exact date and time, your camera model, and sometimes a full-size thumbnail of the original. You never see any of it in the gallery app. Anyone who downloads the original file can read it in seconds with free software.</p>
<p>EXIF (<a href="https://en.wikipedia.org/wiki/Exchangeable_image_file_format">Exchangeable Image File Format</a>) is the standard that defines these tags, maintained through the JEITA and CIPA camera industry specifications. Here is what a typical phone photo carries:</p>
<table>
<thead>
<tr>
<th>Tag</th>
<th>What it reveals</th>
</tr>
</thead>
<tbody><tr>
<td>GPS coordinates</td>
<td>Exactly where the photo was taken</td>
</tr>
<tr>
<td>Date and time</td>
<td>When you were there</td>
</tr>
<tr>
<td>Camera model and software</td>
<td>Your device, down to the firmware version</td>
</tr>
<tr>
<td>Embedded thumbnail</td>
<td>A preview of the original, even if you cropped the main image</td>
</tr>
</tbody></table>
<p>Screenshots carry less: usually no GPS, but device model, software version, and timestamps can still be in there. Strip them the same way before posting publicly.</p>
<h2>Why this actually matters for privacy</h2>
<p>A casual upload can hand strangers your home address. EXIF geotags are precise enough to place a photo at a specific house, and that data travels with the file unless something strips it. Online sellers, parents posting kids' photos, and job seekers sending resume photos all leak location this way without realizing it.</p>
<p>This is not theoretical. In 2012, Vice published a photo of John McAfee taken on a phone with geotagging enabled. The GPS coordinates embedded in the file placed him in Guatemala, and he was arrested two days later. Ordinary people do not attract that kind of attention, but the mechanism is identical when a marketplace listing photo carries the GPS of your living room.</p>
<p>Who should care most:</p>
<ul>
<li><strong>Online sellers:</strong> listing photos with your home GPS embedded is a real privacy leak.</li>
<li><strong>Job seekers and freelancers:</strong> a resume photo with location data tells strangers where you live.</li>
<li><strong>Parents:</strong> kids' photos with location tags deserve a second thought before posting.</li>
<li><strong>Journalists and activists:</strong> source protection starts with clean files.</li>
</ul>
<h2>How to check what is in your photo first</h2>
<p>Checking takes ten seconds and it is worth doing before you share anything publicly. On Windows, right-click the file, open Properties, and look at the Details tab. On a Mac, open the photo in Preview, go to Tools, then Show Inspector. If you see GPS coordinates or camera info, the file needs cleaning.</p>
<p>Online EXIF viewers exist too, but uploading a personal photo to a random site just to check its privacy is self-defeating. Prefer the offline methods above.</p>
<h2>Which platforms strip it, and which do not</h2>
<p>WhatsApp, Facebook, and Instagram strip EXIF data, including GPS, when you send photos through their normal flows. Email attachments, AirDrop originals, forum uploads, and "send as document" transfers usually preserve it. Some services are worse: GitHub preserves all tags including location. Platforms also change behavior silently, so never rely on the destination to clean your files.</p>
<p>Quick reference:</p>
<table>
<thead>
<tr>
<th>Strips EXIF by default</th>
<th>Usually keeps it</th>
</tr>
</thead>
<tbody><tr>
<td>WhatsApp, Facebook, Instagram (normal send)</td>
<td>Email attachments</td>
</tr>
<tr>
<td></td>
<td>AirDrop originals</td>
</tr>
<tr>
<td></td>
<td>"Send as document" transfers</td>
</tr>
<tr>
<td></td>
<td>Forum and marketplace uploads</td>
</tr>
</tbody></table>
<h2>How SnapShrink strips metadata by default</h2>
<p>SnapShrink re-encodes your image from raw pixels, which is why the metadata cannot survive. EXIF lives in a separate segment of the JPEG file, not in the pixel data, so when the browser decodes the photo and writes a fresh file, the tags have nowhere to go. Remove photo metadata is on by default for every download.</p>
<p>A bit of background on why this works: JPEG stores EXIF in a dedicated APP1 segment of the file, separate from the image data itself. When a browser-based tool decodes the photo into a bitmap and re-encodes it, only pixel values cross that boundary. The <a href="https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/createImageBitmap"><code>createImageBitmap()</code></a> web API, which MDN documents as producing bitmap data from an image source, works on exactly this principle: pixels in, pixels out, with no file container carried along.</p>
<p>This is also why stripping never affects image quality. Metadata is not pixel data, so removing it changes zero pixels. The image looks identical; only the hidden fields are gone.</p>
<p>To clean a photo in SnapShrink:</p>
<ol>
<li>Open the tool in your browser. No signup, no install.</li>
<li>Drop your photos in, up to 10 per session free.</li>
<li>Leave "Remove photo metadata (EXIF/GPS)" checked. It is on by default.</li>
<li>Compress or convert as usual, then download. Check Properties/Details or the Preview inspector on the output: the fields come back clean.</li>
</ol>
<p>The file never leaves your device. Re-encoding happens in your browser tab, so there is no server copy to worry about.</p>
<h2>When to keep metadata instead</h2>
<p>Keep metadata only when the data itself is part of the deliverable. Client photography archives, print workflows, and photojournalism need EXIF intact for provenance. For everything you post, email, or list for sale, stripped is the safer default. In SnapShrink, uncheck the toggle for JPEG output; WebP and PNG outputs do not preserve EXIF either way.</p>
<p>One more caution: stripped metadata cannot be recovered. Once the file is re-encoded without EXIF, the tags are gone for good. If the metadata matters to you, for an archive or for legal evidence, keep an untouched original somewhere safe and only share the cleaned copy.</p>
<h2>FAQ</h2>
<p><strong>What metadata do photos carry?</strong></p>
<p>Phone and camera JPEGs embed EXIF tags: GPS coordinates, camera model, lens, capture time, and sometimes software names. That data travels with the file when you email, upload, or share it.</p>
<p><strong>Does SnapShrink strip EXIF by default?</strong></p>
<p>Yes. Remove photo metadata is on by default. Every compressed download ships without EXIF/GPS unless you turn the toggle off for JPEG keep-metadata mode.</p>
<p><strong>Are my photos uploaded when metadata is stripped?</strong></p>
<p>No. Stripping and compression run in your browser on your device. Nothing is uploaded to SnapShrink servers.</p>
<p><strong>Can I keep EXIF when I need it?</strong></p>
<p>For JPEG output only, uncheck Remove photo metadata. WebP and PNG outputs do not keep EXIF either way.</p>
<p><strong>Do WhatsApp and Facebook strip metadata automatically?</strong></p>
<p>Mostly. WhatsApp, Facebook, and Instagram strip EXIF, including GPS, through their normal flows. But "send as document", email attachments, AirDrop originals, and direct file shares usually preserve it. Strip before sharing rather than trusting the platform.</p>
<p><strong>Does stripping metadata affect image quality?</strong></p>
<p>No. Metadata is separate from pixel data, so removing it changes zero pixels. The image looks identical; only the hidden fields are gone.</p>
<p><strong>Can stripped metadata be recovered?</strong></p>
<p>No. Once re-encoded without EXIF, the data is gone. Keep an original copy if the metadata matters to you.</p>
<h2>Clean your next upload in seconds</h2>
<p>Open <a href="https://getsnapshrink.com/">SnapShrink</a>, drop a photo, and compare the Details tab before and after. Ten images per session, free, no signup. If you also need to hit a file size cap, <a href="https://getsnapshrink.com/blog/compress-image-to-100kb-online/">compress an image to 100KB online</a> with the same workflow.</p>
]]></content:encoded></item><item><title><![CDATA[How to Compress JPEG File Size Without Uploading Photos]]></title><description><![CDATA[If you need to compress JPEG file size, for an email attachment, a portal with a hard byte cap, or a website that loads too slowly, you have exactly three…]]></description><link>https://nawalx197.hashnode.dev/how-to-compress-jpeg-file-size-without-uploading-photos</link><guid isPermaLink="true">https://nawalx197.hashnode.dev/how-to-compress-jpeg-file-size-without-uploading-photos</guid><category><![CDATA[Image Compression]]></category><category><![CDATA[web performance]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[webdev]]></category><dc:creator><![CDATA[Nawal]]></dc:creator><pubDate>Sat, 17 Oct 2026 08:15:38 GMT</pubDate><content:encoded><![CDATA[<p>If you need to compress JPEG file size, for an email attachment, a portal with a hard byte cap, or a website that loads too slowly, you have exactly three levers: lower the quality, shrink the dimensions, or switch to a more efficient format. All three work in your browser, without uploading your photos anywhere. This guide walks through them, in the order that actually works.</p>
<p><em>Originally published on the <a href="https://getsnapshrink.com/blog/how-to-compress-jpeg-file-size/">SnapShrink blog</a>.</em></p>
<h2>Why JPEGs are still too big</h2>
<p>JPEG is already a compressed format, which confuses people. Compressed sounds like it should be small. But a modern phone photo lands at 3 to 12 MB, and a DSLR raw-to-JPEG export can be larger. That is fine for archival storage. It is terrible for everything else: email attachments bounce, CMS uploads crawl, and portals with byte caps reject the file outright.</p>
<p>File size comes down to four things: resolution, noise, fine detail, and how aggressively the camera encoded the original. A noisy indoor shot at full resolution will always be heavier than a clean daylight photo at the same dimensions. Keep that in mind. It explains why the same quality setting produces different file sizes on different photos, which matters in the next section.</p>
<h2>The three ways to compress JPEG file size</h2>
<p>Every JPEG compression method you have ever seen is one of these three: lower the quality slider, shrink the pixel dimensions, or convert to a more efficient format. In practice the best results combine all three, in this order: resize to the display size first, then compress to the target size.</p>
<p><strong>Lower the quality.</strong> The classic slider. Fast, but imprecise. You guess a number, check the size, guess again. Fine when there is no hard cap.</p>
<p><strong>Shrink the dimensions.</strong> A 4000px-wide photo displayed at 800px is carrying five times the pixels it needs. Resizing first is the highest quality-per-byte move you can make, and most people skip it.</p>
<p><strong>Change the format.</strong> If the destination accepts WebP, converting typically cuts 25 to 35 percent at the same visual quality, measured in <a href="https://developers.google.cn/speed/webp/docs/webp_study?hl=en">Google's own WebP compression study</a>. If it requires JPEG, many portals still do, stay in JPEG. I go deeper on the trade-offs in <a href="https://getsnapshrink.com/blog/webp-vs-png/">WebP vs PNG: which should you use</a>.</p>
<h2>How to compress JPEG file size without uploading anything</h2>
<p>Most "compress JPEG online" tools make you upload the photo to their server, process it there, and hand back a download link. That works, but your file just traveled to a stranger's infrastructure, and their retention policy, not yours, decides how long it stays.</p>
<p>I built <a href="https://getsnapshrink.com/">SnapShrink</a> to do the whole job inside your browser tab instead. The browser reads your file with the File API, draws it onto a canvas, and re-encodes it with a chosen format and quality, all locally. That encoder API is <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob"><code>canvas.toBlob()</code></a>, which MDN documents as accepting a type and a 0-to-1 quality parameter for lossy formats like JPEG and WebP. Here is the actual workflow:</p>
<p><strong>Step 1: open the tool.</strong> Go to SnapShrink. No signup, no wall. You will see a drop zone, quality controls, a Target KB field, and an output format picker.</p>
<p><strong>Step 2: drop your JPEGs.</strong> One file or a whole folder. Mixed batches with PNG and WebP are fine. Files over 50 MB get skipped with a clear message instead of crashing the batch, and corrupt files are skipped the same way.</p>
<p><strong>Step 3: pick your method.</strong> Quality slider for quick shrinks, Target KB when a portal demands an exact number, or WebP output when the destination allows it. Typing 100 into Target KB gives you a file of 100KB or less, because the engine binary-searches quality to find the highest setting that fits. For portal caps specifically, see my guide on how to <a href="https://getsnapshrink.com/blog/compress-image-to-100kb-online/">compress an image to 100KB online</a>.</p>
<p><strong>Step 4: compress and inspect.</strong> Each finished image shows original size, new size, and ratio. Check faces, text overlays, and product edges at 100 percent zoom before you ship the file. If skin looks waxy or text fringes, you went too far. Raise the target slightly.</p>
<p><strong>Step 5: download.</strong> Single files or Download all as ZIP. The ZIP is assembled in the browser too. First 10 images per session are free, and a one-time 9 dollar license removes the quota.</p>
<p>You can verify the no-upload claim yourself: open DevTools, go to Network, compress a batch, and filter for uploads. There won't be any. I built it this way because I got tired of wondering where my client photos went after using hosted compressors.</p>
<h2>Target size vs quality slider: which one to use</h2>
<p>Use the quality slider when there is no hard cap. You are just making files smaller for a faster site or a lighter email. Start around quality 80, check the result, adjust once. Use target size when a number is non-negotiable: visa portals, exam forms, "maximum 100KB" fields. Typing 100 and getting 100KB or less beats five rounds of guess-and-check.</p>
<p>One thing worth knowing: quality percentages are not standardized across encoders. Quality 80 in one tool is not the same file size as quality 80 in another. MDN notes that each browser applies its own default quality when none is specified, and encoders interpret the 0-to-1 range differently. That is why slider advice like "just export at 80 percent" is unreliable across tools, and why naming the size you want is the more honest approach.</p>
<h2>Resize first: the step everyone skips</h2>
<p>The mistake I see constantly: someone takes a 4000 by 3000 photo, sets quality to 40 trying to hit 200KB, and ends up with mush. The right move was resizing to 1200 by 900 first, then compressing at quality 80. Similar file size, dramatically better looking.</p>
<p>The math is simple. Halving each dimension quarters the pixel count. Fewer pixels means the quality budget stretches further. If you know the display size, an 800px email template or a 1200px blog hero, resize to it, or slightly above for retina, before you touch quality.</p>
<p>SnapShrink does not resize for you yet, so do this step in your OS photo app first. It takes thirty seconds and it is the single biggest quality win in this whole guide.</p>
<h2>How to compress JPEG file size on iPhone and Android</h2>
<p>The same workflow runs on mobile, and it is identical on both platforms. On iPhone, tap the drop zone in Safari and pick from Photos or Files, then set quality or a target and download. One wrinkle: iPhone photos are usually HEIC. Safari hands HEIC to the browser as JPEG through the system picker, so SnapShrink receives a JPEG and processes it normally. No separate conversion step.</p>
<p>On Android in Chrome, the flow is the same. Pick from the gallery or Files, compress, and the download lands in your Downloads folder for attaching wherever you need it. For portal caps on mobile, the Target KB field is the whole game, same as desktop. If the form says 100KB, type 100 and you are done.</p>
<h2>Batch compress JPEGs without the tedium</h2>
<p>If you are prepping product shots or a blog media library, do the folder in one pass. Drop everything into SnapShrink, set one quality or target size, and download the ZIP. The same settings apply across the batch, which keeps a product gallery visually consistent, something you lose when you hand-tune files one by one.</p>
<p>Keep your originals somewhere safe and only ship the compressed set to the CMS. Disk is cheap. Re-shoots are not.</p>
<h2>Mistakes that ruin JPEGs</h2>
<p>There are five, and I have watched people make every one of them. First, re-saving the same JPEG repeatedly. Every lossy pass adds artifacts, so always compress from the original, once. Second, cranking quality to minimum. Skin tones band and gradients posterize, so if quality 30 looks bad, the answer is resizing first, not going lower.</p>
<p>Third, ignoring the required format. Some portals still reject WebP, so check before you convert a whole batch. Fourth, compressing thumbnails and expecting miracles. A 50KB thumbnail cannot become a clean 20KB hero image. Garbage in, garbage out. Fifth, uploading sensitive photos to random compressors. Passport photos, client work, unreleased designs. If a local tool exists, use it.</p>
<h2>FAQ</h2>
<p><strong>Does compressing a JPEG always reduce quality?</strong></p>
<p>Technically yes. JPEG is lossy, so recompressing discards some detail. The practical goal is finding the highest quality that meets your size need. Done right, resize first and use a sensible quality, the difference is invisible at normal viewing sizes.</p>
<p><strong>Should I convert JPEG to WebP instead of compressing?</strong></p>
<p>If the destination supports WebP, usually yes. Google's study measured 25 to 34 percent smaller files at equal quality. If a portal or old software requires JPEG, keep JPEG output. When in doubt, JPEG is the safe choice.</p>
<p><strong>Are my photos uploaded when I compress them?</strong></p>
<p>Not with SnapShrink. Everything runs in your browser through the File API and a Web Worker. Open DevTools, go to Network while compressing, and you will see zero file uploads.</p>
<p><strong>Can I compress many JPEGs at once?</strong></p>
<p>Yes. Drop a batch, set quality or a target size, and download a ZIP. The first 10 images per session are free.</p>
<p><strong>Why is my JPEG still big at low quality?</strong></p>
<p>Almost always resolution. A 4000px photo at quality 40 can outweigh a 1200px photo at quality 85, and look worse doing it. Resize first, then compress.</p>
<p><strong>What is a good quality setting for web photos?</strong></p>
<p>Quality 75 to 85 after resizing to display dimensions. That is the range where file size drops a lot and visible quality barely moves. Below 60, inspect carefully.</p>
<h2>Compress your first JPEG free</h2>
<p>Open <a href="https://getsnapshrink.com/">SnapShrink</a>, drop a photo, and set quality or a target size. Ten images per session, no signup.</p>
]]></content:encoded></item><item><title><![CDATA[TinyPNG Alternative: Pay Once, Compress Forever]]></title><description><![CDATA[The best TinyPNG alternative if you want batch compression without uploads or a subscription is SnapShrink: it runs 100% in your browser for a one-time $9…]]></description><link>https://nawalx197.hashnode.dev/tinypng-alternative-pay-once-compress-forever</link><guid isPermaLink="true">https://nawalx197.hashnode.dev/tinypng-alternative-pay-once-compress-forever</guid><category><![CDATA[Image Compression]]></category><category><![CDATA[web performance]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[webdev]]></category><dc:creator><![CDATA[Nawal]]></dc:creator><pubDate>Fri, 16 Oct 2026 07:19:53 GMT</pubDate><content:encoded><![CDATA[<p>The best TinyPNG alternative if you want batch compression without uploads or a subscription is SnapShrink: it runs 100% in your browser for a one-time $9, so you are not locked into a monthly plan for basic compression.</p>
<h2>What to look for in a TinyPNG alternative</h2>
<p>Before comparing tools, decide what actually matters for your workflow. Most people leaving TinyPNG want the same five things: no uploads, no subscription, real batch handling, exact target sizes, and a free tier honest enough to test quality before paying anything. Keep that list handy. It's the scorecard for everything below.</p>
<ol>
<li><p><strong>No uploads.</strong> Your images never leave your device. This matters for client work, ID photos, unreleased designs — anything you wouldn't email to a stranger.</p>
</li>
<li><p><strong>No subscription.</strong> A compressor that runs on your own CPU has no per-image server cost. Paying monthly for it is a business model, not a technical necessity.</p>
</li>
<li><p><strong>Batch without friction.</strong> Real folders, not 20-files-at-a-time, with one ZIP at the end.</p>
</li>
<li><p><strong>Exact sizes.</strong> A target-KB mode for portals with hard caps, instead of guessing with a quality slider.</p>
</li>
<li><p><strong>Honest free tier.</strong> Enough free use to verify quality before paying.</p>
</li>
</ol>
<h2>What TinyPNG offers today</h2>
<p>Fair description first — check their site for the latest, but as of late 2026:</p>
<p><a href="https://tinypng.com">TinyPNG</a>'s online compressor optimizes WebP, PNG, JPEG, and related formats <strong>on their servers</strong>. Their FAQ states free users can upload <strong>up to 20 images at once</strong>, each up to <strong>5 MB</strong>. Free format conversion is limited to <strong>3 images</strong>. For higher capacity they sell <strong>Web Pro</strong> and <strong>Web Ultra</strong> subscriptions. Uploaded images are retained for a maximum of <strong>48 hours</strong> before deletion, per their privacy FAQ.</p>
<p>That's a clear, honest policy. It still means the bytes left your device for up to two days. For occasional single-page tweaks, the limits are fine. They get expensive or awkward when you regularly compress product folders, blog media libraries, or client deliverables.</p>
<h2>SnapShrink vs TinyPNG</h2>
<table>
<thead>
<tr>
<th></th>
<th>TinyPNG (tinypng.com)</th>
<th>SnapShrink</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Where files are processed</strong></td>
<td>Uploaded to their servers (kept ≤48 hours)</td>
<td><strong>100% in your browser</strong>: zero uploads</td>
</tr>
<tr>
<td><strong>How to verify the privacy claim</strong></td>
<td>Trust their policy</td>
<td>Open DevTools → Network: zero upload requests, verifiable in 30 seconds</td>
</tr>
<tr>
<td><strong>Free web batch limit</strong></td>
<td>Up to 20 images at once, 5 MB each</td>
<td>No hard batch size; 10 free images per session</td>
</tr>
<tr>
<td><strong>Free format conversion</strong></td>
<td>Up to 3 images</td>
<td>JPEG / PNG / WebP within free quota</td>
</tr>
<tr>
<td><strong>Paid model</strong></td>
<td>Web Pro / Web Ultra subscriptions</td>
<td><strong>$9 one-time</strong></td>
</tr>
<tr>
<td><strong>Target file size (e.g. 100KB)</strong></td>
<td>Not offered on the free web tool</td>
<td><strong>Yes</strong>: type the KB cap</td>
</tr>
<tr>
<td><strong>Batch ZIP download</strong></td>
<td>Part of paid web plans</td>
<td>Included, including free tier</td>
</tr>
<tr>
<td><strong>EXIF/metadata handling</strong></td>
<td>Processed server-side</td>
<td>Stripped automatically, on your device</td>
</tr>
<tr>
<td><strong>Account required</strong></td>
<td>Required for paid features</td>
<td>No account, offline license key</td>
</tr>
</tbody></table>
<p>I deliberately don't quote TinyPNG's subscription prices here. Pricing pages change, and third-party roundups disagree with each other. The durable fact is structural: paid capacity is sold as a subscription, not a one-time license.</p>
<h2>Why one-time pricing fits an in-browser tool</h2>
<p>Server-side compressors pay for bandwidth, storage, and compute on every image, so subscriptions make commercial sense for them. An in-browser compressor has effectively zero marginal cost per image after the page loads. Your CPU does the work. Charging rent every month for that is a business choice, not a technical necessity.</p>
<p>SnapShrink charges $9 once: you pay through Dodo Payments, get a license key by email, paste it into the app, and verification happens offline with a cryptographic signature stored only in your browser. No seats, no "update your card" emails, no annual renewals. There's a 14-day money-back guarantee — one email, full refund (<a href="https://getsnapshrink.com/refunds/">refund policy</a>).</p>
<h2>The privacy difference, and how to verify it yourself</h2>
<p>Here's what most "TinyPNG alternative" roundups never tell you: <strong>how to check the claim</strong>.</p>
<p>Any compressor can <em>say</em> "we don't upload" or "we delete after 48 hours." With a server-side tool, you're trusting the policy. With an in-browser tool, you can verify in thirty seconds:</p>
<ol>
<li><p>Open the tool and press F12 (DevTools) → Network tab.</p>
</li>
<li><p>Drop in a batch of photos and compress.</p>
</li>
<li><p>Filter the network log for uploads (POST/PUT requests with file bodies).</p>
</li>
</ol>
<p>With SnapShrink, you'll see none, because there are none to see. The <a href="https://developer.mozilla.org/en-US/docs/Web/API/File_API">File API</a> reads your images, a Web Worker encodes them, and the bytes never leave the tab. Try the same test on any server-side compressor and watch the difference. This is the single most useful thing I can teach you in this article: don't trust privacy claims, test them. See also the <a href="https://getsnapshrink.com/privacy/">privacy policy</a>.</p>
<p>There's a second privacy angle nobody talks about: <strong>EXIF data</strong>. Phone photos carry GPS coordinates, timestamps, and device info. When you upload to a server compressor, that metadata travels with the file, and you're trusting their pipeline to strip it. SnapShrink strips EXIF automatically during compression, on your device, before anything could ever leave it. (See the guide: <a href="https://getsnapshrink.com/blog/strip-metadata-from-photos/">Strip metadata from photos</a>.)</p>
<h2>Which tool for which person: a decision matrix</h2>
<table>
<thead>
<tr>
<th>Your situation</th>
<th>Pick</th>
</tr>
</thead>
<tbody><tr>
<td>Occasional compression, fine with uploads and subscriptions</td>
<td>TinyPNG: it's polished and proven</td>
</tr>
<tr>
<td>Client photos, ID scans, unreleased work</td>
<td>SnapShrink: nothing leaves your device</td>
</tr>
<tr>
<td>Portal with a hard KB cap (visa, exams)</td>
<td>SnapShrink: <a href="https://getsnapshrink.com/blog/compress-image-to-100kb-online/">target-KB mode</a></td>
</tr>
<tr>
<td>Need a WordPress plugin or developer API</td>
<td>TinyPNG: mature ecosystem</td>
</tr>
<tr>
<td>Hate subscriptions on principle</td>
<td>SnapShrink: $9 once</td>
</tr>
<tr>
<td>Want the absolute smallest file and don't care how</td>
<td>Test both on your images. Encoders differ.</td>
</tr>
</tbody></table>
<p>Want the full head-to-head of the two free options? See our <a href="https://getsnapshrink.com/blog/tinypng-vs-squoosh/">TinyPNG vs Squoosh</a> comparison.</p>
<p>The honest version: these tools overlap but aren't identical. TinyPNG has the ecosystem (API, plugins, CDN). SnapShrink has the privacy model and the pricing model. Pick the one whose strengths match your actual workflow.</p>
<h2>When TinyPNG is still the better pick</h2>
<p>Choose TinyPNG when you want their specific compression algorithm, the WordPress plugin, the developer API, or the CDN pipeline, or when you're happy uploading files and paying for Web Pro / Web Ultra. It's a good product; this article exists because the <em>model</em> (upload + subscribe) doesn't fit everyone, not because the tool is bad.</p>
<h2>Switching takes two minutes</h2>
<ol>
<li><p>Open <a href="https://getsnapshrink.com/app/">getsnapshrink.com/app/</a>, no signup.</p>
</li>
<li><p>Drop your batch (JPG, PNG, WebP, GIF in; JPG, PNG, WebP out). The <a href="https://getsnapshrink.com/bulk-image-compressor/">bulk image compressor</a> is built for folders.</p>
</li>
<li><p>Set quality or type an exact target size, then download individually or as one ZIP. Prefer <a href="https://getsnapshrink.com/blog/webp-vs-png/">WebP</a> when the destination allows it.</p>
</li>
</ol>
<p>Your first 10 images each session are free, so compare output quality against TinyPNG on your own photos before spending anything. Zoom to 100% on faces and text. That's where encoder differences actually show.</p>
<h2>FAQ</h2>
<p><strong>Is SnapShrink a TinyPNG alternative?</strong></p>
<p>Yes, if you want batch compression without uploading files and without a monthly subscription. It runs entirely in your browser and unlocks unlimited use for $9 once.</p>
<p><strong>What are TinyPNG's free limits?</strong></p>
<p>Per their site: up to 20 images at once (5 MB each), 3 free format conversions. More capacity needs a Web Pro or Web Ultra subscription.</p>
<p><strong>Is the $9 really one-time?</strong></p>
<p>Yes. One payment through Dodo Payments, one license key by email, unlimited compressions. No subscription, no renewal. 14-day money-back guarantee.</p>
<p><strong>Do I need an account?</strong></p>
<p>No. No accounts, no passwords, no sync. Your license lives in your browser's local storage.</p>
<p><strong>How is in-browser compression different, technically?</strong></p>
<p>Your browser reads files with the File API and encodes them in a Web Worker. The same machine that took the photo does the compression. Server-side tools upload first, then process. The output quality depends on the encoder, not the location; the difference is privacy and cost structure.</p>
<p><strong>Can I verify SnapShrink doesn't upload my images?</strong></p>
<p>Yes. DevTools → Network during any batch shows zero file uploads. That's the whole point of the architecture.</p>
<p><strong>Does SnapShrink strip EXIF/location data?</strong></p>
<p>Automatically, on every compression, on your device.</p>
<p><strong>What if I don't like it?</strong></p>
<p>14-day money-back guarantee. One email, full refund. See the <a href="https://getsnapshrink.com/refunds/">refund policy</a>.</p>
<p><strong>Can I use it for client work commercially?</strong></p>
<p>Yes. The license covers your use; there are no seat limits.</p>
<p><strong>Nawal Shrestha</strong>: founder of SnapShrink, building privacy-first browser tools.</p>
<h2>Try it free</h2>
<p><a href="https://getsnapshrink.com/app/">Open SnapShrink</a>. 10 images per session, $9 once for unlimited. No subscription.</p>
]]></content:encoded></item><item><title><![CDATA[How to Compress an Image to 100KB Online (Without the Guesswork)]]></title><description><![CDATA[Visa portals, exam forms, and job applications all ask for the same thing: a photo under 100KB. The usual approach is exporting at 60% quality, checking…]]></description><link>https://nawalx197.hashnode.dev/how-to-compress-an-image-to-100kb-online-without-the-guesswork</link><guid isPermaLink="true">https://nawalx197.hashnode.dev/how-to-compress-an-image-to-100kb-online-without-the-guesswork</guid><category><![CDATA[Image Compression]]></category><category><![CDATA[web performance]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[webdev]]></category><dc:creator><![CDATA[Nawal]]></dc:creator><pubDate>Fri, 16 Oct 2026 07:03:01 GMT</pubDate><content:encoded><![CDATA[<p>Visa portals, exam forms, and job applications all ask for the same thing: a photo under 100KB. The usual approach is exporting at 60% quality, checking the size, dropping to 50%, checking again. Five guesses later you land at 97KB with a photo that looks worse than it needed to.</p>
<p>There is a simpler way. Name the size, and let the tool find the highest quality that fits. Type 100, get a file at or under 100KB, done.</p>
<h2>Why 100KB limits still exist</h2>
<p>Government and university portals process millions of files, and a hard per-file cap keeps storage costs and database rows predictable. A phone photo today is 3-8MB, so "under 100KB" means shrinking it to roughly 2% of its original size.</p>
<p>You will run into this cap on visa and passport photo uploads, exam and university admission portals, resume portals that reject oversized profile photos, scholarship and KYC forms, and banking document uploads. The bottleneck is storage and database row size, not your internet speed. Faster broadband never moved it, and it will not move soon.</p>
<h2>The mistake most people make: crushing quality before resizing</h2>
<p>100KB is mostly about resolution, not the quality slider. A typical phone photo saved as JPEG shows this clearly:</p>
<table>
<thead>
<tr>
<th>Source dimensions</th>
<th>Quality 85</th>
<th>Quality 60</th>
<th>Quality 40</th>
</tr>
</thead>
<tbody><tr>
<td>4000x3000 (12MP)</td>
<td>~2.5 MB</td>
<td>~1.2 MB</td>
<td>~600 KB</td>
</tr>
<tr>
<td>2000x1500</td>
<td>~700 KB</td>
<td>~350 KB</td>
<td>~180 KB</td>
</tr>
<tr>
<td>1200x900</td>
<td>~280 KB</td>
<td>~140 KB</td>
<td>~75 KB</td>
</tr>
<tr>
<td>800x600</td>
<td>~130 KB</td>
<td>~65 KB</td>
<td>~35 KB</td>
</tr>
</tbody></table>
<p>Sizes vary with image complexity; noisy photos run heavier. But the pattern holds: a 1200x900 photo at quality 60 is still ~140KB, while an 800x600 photo is comfortably under 100KB at the same quality. Lowering quality on a 12MP original is bad advice. Resize first, then compress.</p>
<h2>How target-size mode works: type 100, get 100KB or less</h2>
<p>Instead of guessing quality levels, type the size you need into a target-size box. In SnapShrink the flow is:</p>
<ol>
<li>Drop your image at getsnapshrink.com/app. JPG, PNG, WebP, and GIF all work.</li>
<li>Type 100 as the target size in KB and pick your output format. WebP is smallest for photos, but check portal acceptance below.</li>
<li>The engine encodes at quality 95, then 50, then narrows the range. About 8 encodes find the highest quality that lands at or under 100KB.</li>
<li>If even quality 5 overshoots, the image scales down in 0.9 steps (never below 320px) and the search repeats.</li>
<li>You get the result with before and after sizes shown. On the rare image where 100KB is truly unreachable, it reports the best effort it managed instead of failing silently.</li>
</ol>
<p>A standard 5MP phone photo typically finishes in under 3 seconds, processed in a background worker that keeps the page responsive.</p>
<h2>Which format will the portal accept?</h2>
<p>This is where people get burned: a beautiful 80KB WebP gets rejected, not for size, but for format. Older government and banking portals often accept only JPEG.</p>
<ul>
<li>Photo or camera shot: WebP or JPEG. WebP usually wins by about 25%.</li>
<li>Screenshot or graphic with text: PNG or WebP, to keep edges sharp.</li>
<li>Document scan: WebP or JPEG. Text stays readable far below 100KB in grayscale.</li>
<li>Signature on white background: PNG or JPEG. JPEG is the safest choice for old portals.</li>
</ul>
<p>When in doubt, use JPEG. It is the universally accepted format. Use WebP only when you have confirmed the portal accepts it, or when the file is for your own site rather than someone else's form.</p>
<h2>From a phone</h2>
<p>The process is identical in Safari on iOS and Chrome on Android: tap the drop zone, pick from camera roll or files, type 100, download. The file lands in Downloads, ready to attach.</p>
<p>One iOS detail: phone photos are typically HEIC, and Safari converts HEIC to JPEG automatically through the file picker. SnapShrink receives a JPEG and processes it normally, so no manual conversion is needed.</p>
<h2>Why browser-only compression matters for documents</h2>
<p>Passport photos, ID scans, and visa applications contain biometric data. Uploading those to a third-party compressor creates a data trail: how long the server actually retains the file, who can access it, and their breach notification obligations. You have no visibility into any of that.</p>
<p>SnapShrink processes images with the browser's Canvas API and a Web Worker. The bytes never leave your device. You can verify it yourself:</p>
<ol>
<li>Open the tool and press F12, then open the Network tab.</li>
<li>Compress a photo.</li>
<li>Look for file uploads in the network log. There are none.</li>
</ol>
<p>Thirty seconds and you have confirmed what no privacy policy can prove for a server-side tool. EXIF metadata (GPS coordinates, device info, timestamps) is stripped automatically during compression, so an ID photo does not carry location history into a portal database.</p>
<h2>A batch of documents</h2>
<p>A passport photo, a signature scan, a supporting ID: drop them all at once. SnapShrink's bulk compressor applies the 100KB target to each file individually, because every image needs a different quality level to hit the same cap. When the batch finishes, download everything as one ZIP with filenames intact.</p>
<h2>When the image will not reach 100KB</h2>
<p>Genuinely impossible cases are rare but real. A 320x320 photo already at 110KB at quality 1 in JPEG has nowhere left to go. Then:</p>
<ul>
<li>Switch to WebP. Usually smaller than JPEG at the same dimensions, if the portal allows it.</li>
<li>Crop tighter. Border whitespace costs bytes, especially in JPEG.</li>
<li>Resize to the portal's minimum. If it says minimum 200x200, try exactly 200x200.</li>
<li>Grayscale for documents. Some portals accept it, and it compresses far more efficiently.</li>
<li>Check the EXIF. A 50-200KB metadata payload on an unprocessed phone photo is dead weight; stripping it alone can close the gap.</li>
</ul>
<p>The tool always reports the actual output size, so you know exactly where you stand instead of wondering whether a rejection was the size, the format, or the portal being slow.</p>
<h2>FAQ</h2>
<p>Is my photo uploaded to a server? No. Compression happens entirely in your browser. Open DevTools and watch the Network tab while compressing: zero file uploads.</p>
<p>What if my image cannot reach 100KB? Rare, but possible with very detailed images at small dimensions. You will see the smallest size achieved instead of a silent failure.</p>
<p>Which browsers work? Chrome, Edge, Firefox, and Safari handle WebP encoding natively. If yours cannot encode WebP, the tool says so and you pick JPEG or PNG instead.</p>
<p>Is there a file size limit? Files up to 50MB are accepted. Larger files are skipped with a clear message; the rest of the batch keeps going.</p>
<p>How is this different from Squoosh? Squoosh is excellent for single-image manual tuning. SnapShrink handles batch processing and target-size mode: type the cap, get there automatically. One image with pixel-perfect control: Squoosh. A stack of documents with a size cap: SnapShrink.</p>
<p>First 10 images per session are free. For regular document processing, a one-time $9 payment unlocks unlimited use with no subscription.</p>
<hr />
<p>Originally published on SnapShrink: <a href="https://getsnapshrink.com/blog/compress-image-to-100kb-online/">https://getsnapshrink.com/blog/compress-image-to-100kb-online/</a></p>
]]></content:encoded></item></channel></rss>