<?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[ZipPic]]></title><description><![CDATA[ZipPic]]></description><link>https://zippicapp.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 28 Oct 2026 22:00:58 GMT</lastBuildDate><atom:link href="https://zippicapp.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[I Stopped Uploading Client Photos to Online Tools. Here's What I Use Instead.]]></title><description><![CDATA[If you handle client photos — real estate shoots, product photos, headshots, unreleased designs — every "free" online compressor asks you to do something…]]></description><link>https://zippicapp.hashnode.dev/i-stopped-uploading-client-photos-to-online-tools-here-s-what-i-use-instead</link><guid isPermaLink="true">https://zippicapp.hashnode.dev/i-stopped-uploading-client-photos-to-online-tools-here-s-what-i-use-instead</guid><category><![CDATA[web performance]]></category><category><![CDATA[tools]]></category><dc:creator><![CDATA[zippic]]></dc:creator><pubDate>Wed, 21 Oct 2026 22:37:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ad092bdcf7fd4e2437af7bc/ebd87a46-1ce9-41a2-b788-37b7e8c01226.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you handle client photos — real estate shoots, product photos, headshots, unreleased designs — every "free" online compressor asks you to do something you probably shouldn't: upload someone else's files to a server you don't control.</p>
<p>I used to do it too, because it was fast. Then a client asked, point blank: "Where do these photos go when I compress them?" I didn't have a good answer.</p>
<p>So I built the tool I wanted to exist.</p>
<p>ZipPic runs 18 media tools entirely in your browser with WebAssembly. Compression, bulk compression, HEIC to JPG, PSD to images, PDF to images, GIF and APNG makers, video tools, doc compression — all of it happens on your device. Nothing uploads. Open the Network tab while you work and check: zero bytes leave your browser.</p>
<p>That changes the workflow in three practical ways:</p>
<ol>
<li><p>No caps to work around. TinyPNG stops you at 20 images and 5MB per file. A real estate shoot or a Shopify product batch blows past that in minutes. Local processing has no batch limit to hit.</p>
</li>
<li><p>No waiting on uploads. A 50MB PDF or a folder of RAW-adjacent phone photos doesn't need to go up to a server and back down again. It just processes.</p>
</li>
<li><p>No awkward client conversation. You can honestly say the files never left your machine.</p>
</li>
</ol>
<p>It's free, no signup, and it works offline after the first load. That last part matters more than I expected — I've compressed photos on planes and in cafes with bad Wi-Fi.</p>
<p>I'm not saying never use a server tool. If you need heavy AI upscaling or team collaboration, a server makes sense. But for compress, convert, crop, watermark, and split — the everyday jobs — local is faster, more private, and has no reason to cap you.</p>
<p>Try it and check the Network tab. That's the whole pitch: <a href="https://zippic.app">https://zippic.app</a></p>
<p>(Disclosure: I'm the developer.)</p>
]]></content:encoded></item><item><title><![CDATA[ZipPic vs Squoosh: The Three Jobs Squoosh Can't Do]]></title><description><![CDATA[Squoosh is a genuinely good tool. If you want to squeeze one hero image and compare AVIF against WebP against MozJPEG with a side-by-side preview and…]]></description><link>https://zippicapp.hashnode.dev/zippic-vs-squoosh-the-three-jobs-squoosh-can-t-do</link><guid isPermaLink="true">https://zippicapp.hashnode.dev/zippic-vs-squoosh-the-three-jobs-squoosh-can-t-do</guid><category><![CDATA[web performance]]></category><category><![CDATA[tools]]></category><category><![CDATA[image optimization ]]></category><dc:creator><![CDATA[zippic]]></dc:creator><pubDate>Tue, 20 Oct 2026 14:00:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ad092bdcf7fd4e2437af7bc/1738b83e-b627-49e7-ab32-f2b93119d832.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Squoosh is a genuinely good tool. If you want to squeeze one hero image and compare AVIF against WebP against MozJPEG with a side-by-side preview and fine-grained codec settings, it's still one of the best pages on the internet for that.</p>
<p>But most image work isn't one hero image. It's a folder of product photos. It's a GIF that's 12MB. It's an animated WebP banner. And on those three everyday jobs, Squoosh simply can't help you — not "does it worse," but <em>doesn't do it at all</em>. I checked each one against Squoosh's app and its GitHub repo before writing this.</p>
<h2>1. Batch compression: one image at a time, forever</h2>
<p>Squoosh's editor loads exactly one image. There is no multi-file upload, no queue, no "download all." Fifty screenshots means fifty rounds of open → compress → download.</p>
<p>This isn't an oversight that got fixed. Users have been requesting batch support since 2018 (the GitHub issues are still open), and the maintainers' answer at the time was to use the Squoosh CLI instead — which has since been deprecated.</p>
<p><a href="https://zippic.app/bulk-image-compressor">ZipPic's bulk image compressor</a> is built the other way around: drop in as many images as you like (there's no strict count limit; files under 50MB each are recommended), let it process, and hit <strong>Download All</strong> to get everything back as a single ZIP. JPG, PNG, WebP, GIF, AVIF, HEIC and even RAW files are accepted, and like Squoosh, everything runs locally in your browser — nothing is uploaded to a server.</p>
<h2>2. GIF: Squoosh can't output one — and destroys animated ones</h2>
<p>Open Squoosh's format dropdown and you'll find AVIF, MozJPEG, OxiPNG, WebP, WebP v2, JPEG XL (beta), QOI and the browser codecs. No GIF. Squoosh cannot save a GIF file, compressed or otherwise.</p>
<p>Worse, if you open an <em>animated</em> GIF in Squoosh, you don't get a smaller GIF back — you get the first frame as a still image. The animation is gone.</p>
<p>In ZipPic, GIF is a first-class format: the compressor takes GIFs in and gives compressed GIFs back, animation intact. And when a GIF needs more than compression — trimming frames, adjusting delays, reordering — there's a dedicated <a href="https://zippic.app/gif-maker">GIF Maker</a> for creating and editing animated GIFs locally.</p>
<h2>3. Animated WebP: flattened to frame one</h2>
<p>Animated WebP is where this gets painful, because it's the format people reach for precisely to <em>replace</em> heavy GIFs. Squoosh doesn't preserve it. As its own maintainer put it in the repo: Squoosh doesn't "support animation at all" — open an animated WebP and only the first frame survives, converted to a static image. The same applies to animated AVIF.</p>
<p>ZipPic's compressor lists <strong>Animated WEBP</strong> as an output format. Feed it an animated WebP and you get a smaller animated WebP back, still moving. Feed it an animated GIF and you can convert it to animated WebP instead — usually the single biggest saving available for web animations, since WebP typically cuts 60–80% off a GIF's size at similar quality.</p>
<h2>The honest summary</h2>
<table>
<thead>
<tr>
<th>Job</th>
<th>Squoosh</th>
<th>ZipPic</th>
</tr>
</thead>
<tbody><tr>
<td>Single image, deep codec tuning (AVIF, JPEG XL, QOI)</td>
<td>✅ Excellent</td>
<td>✅ Good</td>
</tr>
<tr>
<td>Batch-compress many images at once</td>
<td>❌ One at a time</td>
<td>✅ Unlimited batch + ZIP download</td>
</tr>
<tr>
<td>Compress a GIF</td>
<td>❌ No GIF output</td>
<td>✅ GIF in, GIF out</td>
</tr>
<tr>
<td>Compress an animated GIF / WebP, keeping the animation</td>
<td>❌ First frame only</td>
<td>✅ Animated WebP / GIF output</td>
</tr>
<tr>
<td>Runs 100% locally, no upload</td>
<td>✅</td>
<td>✅</td>
</tr>
<tr>
<td>Price</td>
<td>Free</td>
<td>Free</td>
</tr>
</tbody></table>
<p>Squoosh remains a superb single-image codec laboratory, and I still use it that way. But the moment your job involves <em>many</em> images, a GIF, or anything that moves, you need a tool that actually does those jobs — that's the gap <a href="https://zippic.app">ZipPic</a> was built to fill.</p>
<p><em>Disclosure: I build ZipPic. Every Squoosh limitation above is verifiable in the live app and the public squoosh repo on GitHub — check for yourself before you trust either of us.</em></p>
]]></content:encoded></item><item><title><![CDATA[Your PNG Screenshots Are 5x Bigger Than They Need to Be]]></title><description><![CDATA[I published a tutorial last month with 14 screenshots. After it went live, I checked the page weight out of curiosity: 38MB. Thirty-eight megabytes — for a…]]></description><link>https://zippicapp.hashnode.dev/your-png-screenshots-are-5x-bigger-than-they-need-to-be</link><guid isPermaLink="true">https://zippicapp.hashnode.dev/your-png-screenshots-are-5x-bigger-than-they-need-to-be</guid><dc:creator><![CDATA[zippic]]></dc:creator><pubDate>Mon, 19 Oct 2026 03:32:52 GMT</pubDate><content:encoded><![CDATA[<p>I published a tutorial last month with 14 screenshots. After it went live, I checked the page weight out of curiosity: 38MB. Thirty-eight megabytes — for a page that is mostly text.</p>
<p>Every screenshot was a PNG, straight from my Mac's screenshot tool. A single full-screen Retina capture was 4.2MB. I had uploaded them exactly as they came out of the OS, the way most of us do.</p>
<h2>Why screenshots are so heavy</h2>
<p>Three things conspire against you:</p>
<ol>
<li><strong>Retina resolution.</strong> A screenshot on a modern display is 2x or 3x the CSS pixels. That 1440px-wide illustration in your article is actually a 4320px-wide PNG.</li>
<li><strong>PNG is lossless.</strong> Great for crisp UI text, terrible for file size. Any photo-like gradient or shadow in the shot balloons fast.</li>
<li><strong>Nobody compresses before uploading.</strong> Platforms will happily serve your 4MB original to every single reader.</li>
</ol>
<p>The kicker: after compression, my 4.2MB screenshot came out at 380KB — and I could not tell the difference at article width. The detail PNG preserves is detail no reader will ever see, because the image is displayed at a fraction of its native resolution anyway.</p>
<h2>The 30-second fix</h2>
<p>I don't hand-tune screenshots anymore. My workflow now:</p>
<ol>
<li>Take the screenshot as usual — PNG, full Retina glory.</li>
<li>Drop it into <a href="https://zippic.app/bulk-image-compressor">ZipPic's image compressor</a> — free, runs entirely in your browser, no signup, no upload.</li>
<li>It compresses locally and shows a live before/after comparison. Nudge the quality slider until the text edges still look crisp.</li>
<li>Download, then upload the compressed version to your post.</li>
</ol>
<p>That 14-screenshot tutorial went from 38MB to under 5MB. Load time went from "go make coffee" to instant — and every reader on mobile data got a faster page for free.</p>
<h2>The part nobody thinks about: what's in the screenshot</h2>
<p>Screenshots are uniquely sensitive uploads. Open tabs, file paths, a Slack DM in the background, an API key sitting in a terminal window you forgot was visible. Every "free online compressor" that asks you to upload a screenshot is asking you to hand all of that to a stranger's server first.</p>
<p>I started compressing locally for the file size. I keep doing it for the privacy. Nothing leaves your machine — the work happens in your browser via WebAssembly, and the file you download is the only copy that ever moves.</p>
<p>Next time you write a tutorial, try this: take one PNG screenshot, run it through a local compressor, and compare them side by side at article width. If you can't spot the difference — and you won't — there's no reason to ever upload the original again.</p>
]]></content:encoded></item><item><title><![CDATA[That 50MB PDF You're Trying to Email? It Could Be 3MB.]]></title><description><![CDATA[Last week I tried to send a scanned contract over email. 47MB. Gmail's attachment limit is 25MB. The client's upload portal capped at 10MB. I ended up…]]></description><link>https://zippicapp.hashnode.dev/that-50mb-pdf-you-re-trying-to-email-it-could-be-3mb</link><guid isPermaLink="true">https://zippicapp.hashnode.dev/that-50mb-pdf-you-re-trying-to-email-it-could-be-3mb</guid><dc:creator><![CDATA[zippic]]></dc:creator><pubDate>Sun, 18 Oct 2026 08:55:32 GMT</pubDate><content:encoded><![CDATA[<p>Last week I tried to send a scanned contract over email. 47MB. Gmail's attachment limit is 25MB. The client's upload portal capped at 10MB. I ended up splitting it into five parts like it was 2004.</p>
<p>The file was 40 pages of mostly text with a few scanned signatures. There was no reason for it to be 47MB — except that whoever scanned it saved every page as a full-resolution image with zero compression.</p>
<h2>Why PDFs get so fat</h2>
<p>Most bloated PDFs come from the same source: scanned pages or exported slides where images were embedded at far higher resolution than anyone will ever view. A scanned page at 600 DPI looks identical to one at 150 DPI on screen, but takes 4x the space. Multiply by 40 pages and you're emailing a small movie.</p>
<p>The traditional fix is Adobe Acrobat's "Reduce File Size" — if you have a subscription. Or one of those free online PDF compressors, where you upload your contract (with signatures, account numbers, whatever) to a stranger's server and hope for the best.</p>
<p>I wasn't comfortable with either option for client documents.</p>
<h2>Compress it where it already is</h2>
<p>PDF compression is just image recompression plus metadata cleanup — the kind of thing a browser can do locally with WebAssembly. No server needed, which means your documents never leave your machine.</p>
<p>Here's what I do now:</p>
<ol>
<li>Open <a href="https://zippic.app/doc-compressor">ZipPic's document compressor</a> — free, runs entirely in the browser, no signup.</li>
<li>Drop in the PDF. It handles the parsing locally.</li>
<li>Pick a compression level. For screen reading and email, the middle setting is usually plenty — my 47MB contract came out at 3.1MB with no visible difference.</li>
<li>Download the result. Nothing was uploaded anywhere.</li>
</ol>
<p>That 3.1MB file sailed through Gmail and the client portal without a second thought.</p>
<h2>The files you should never upload</h2>
<p>Here's the thing I keep coming back to: the documents that most need compressing are exactly the ones you least want to upload. Contracts, financial statements, medical records, unreleased specs — the "please compress this 80MB PDF" request almost always involves something sensitive.</p>
<p>We've normalized uploading these to random free tools because there wasn't a convenient alternative. Now there is. Your browser is fast enough to do it locally, and the result is identical.</p>
<p>Next time a PDF won't fit through email, try compressing it without the upload step first. Your documents — and whoever's waiting on them — will thank you.</p>
]]></content:encoded></item><item><title><![CDATA[I Compared ZipPic and TinyPNG Head-to-Head. Here's What I Found]]></title><description><![CDATA[I build and run ZipPic — 18 free media tools that run 100% in your browser, nothing uploaded. TinyPNG is the name everyone knows in image compression, so I…]]></description><link>https://zippicapp.hashnode.dev/i-compared-zippic-and-tinypng-head-to-head-here-s-what-i-found</link><guid isPermaLink="true">https://zippicapp.hashnode.dev/i-compared-zippic-and-tinypng-head-to-head-here-s-what-i-found</guid><category><![CDATA[web performance]]></category><category><![CDATA[tools]]></category><dc:creator><![CDATA[zippic]]></dc:creator><pubDate>Thu, 15 Oct 2026 09:03:56 GMT</pubDate><content:encoded><![CDATA[<p>I build and run <a href="https://zippic.app">ZipPic</a> — 18 free media tools that run 100% in your browser, nothing uploaded. TinyPNG is the name everyone knows in image compression, so I decided to put the two side by side and measure honestly: UI limits, actual compression numbers, and privacy.</p>
<h2>The limits you'll hit first</h2>
<p><strong>TinyPNG</strong> has a clean UI and batch support, but with hard caps: max 20 images per batch, 5MB per image. Fine for a quick job; annoying when you're processing a full asset folder or files from a camera.</p>
<p><strong>ZipPic</strong> has no cap on batch count or file size. Dozens of images, files over 5MB — same flow. This was a deliberate design choice: I kept hitting TinyPNG's 20-file wall myself.</p>
<h2>Actual compression numbers</h2>
<p>I took the same 2MB PNG and ran it through both tools, outputting PNG, JPG, and AVIF:</p>
<table>
<thead>
<tr>
<th>Format</th>
<th>TinyPNG</th>
<th>ZipPic</th>
</tr>
</thead>
<tbody><tr>
<td>PNG (keeps transparency)</td>
<td>649 KB</td>
<td><strong>409 KB</strong></td>
</tr>
<tr>
<td>JPG</td>
<td>223 KB</td>
<td><strong>115 KB</strong></td>
</tr>
<tr>
<td>AVIF</td>
<td>59 KB</td>
<td><strong>41 KB</strong></td>
</tr>
</tbody></table>
<p>Visual quality was comparable in all three rounds — ZipPic just squeezed harder. The JPG result (nearly 50% smaller) is the one that matters most for web publishing.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t8m4kmgtjujoetzbvxdr.png" alt="TinyPNG vs ZipPic PNG comparison" />
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bm0oaabur2x7n5pk4rdu.png" alt="TinyPNG vs ZipPic JPG comparison" /></p>
<h2>Privacy: local vs. upload</h2>
<p>This is the biggest architectural difference:</p>
<ul>
<li><strong>ZipPic</strong> compresses locally in your browser via WebAssembly. Your images never leave your device — no upload, no server copy, works offline after first load.</li>
<li><strong>TinyPNG</strong> uploads your images to its servers, processes them, and sends them back. They say files are deleted afterwards, but if you handle client work, design drafts, or personal photos, "trust us" is a weaker guarantee than "it never left your machine."</li>
</ul>
<h2>My honest take</h2>
<p>TinyPNG is a solid tool — simple, reliable, and fine for small batches of lightweight images. If that's your whole workflow, you don't need to switch.</p>
<p>But if you regularly hit the 20-file/5MB ceiling, care about squeezing every kilobyte (that JPG gap is real), or would rather your images never touched a server, ZipPic is the better fit. It's free at <a href="https://zippic.app">zippic.app</a> — no signup, no upload limits, 18 tools, 11 languages.</p>
<p><em>Disclosure: I'm the developer of ZipPic. The numbers above are from my own tests — run your own and see.</em></p>
]]></content:encoded></item></channel></rss>