<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BananaFast</title>
    <description>The latest articles on DEV Community by BananaFast (@bananafast).</description>
    <link>https://dev.to/bananafast</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4199575%2F013be82a-c155-434d-9bb0-368fe646a0bd.png</url>
      <title>DEV Community: BananaFast</title>
      <link>https://dev.to/bananafast</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bananafast"/>
    <language>en</language>
    <item>
      <title>We compressed 28 photos at 15 settings: here's where quality stops paying off</title>
      <dc:creator>BananaFast</dc:creator>
      <pubDate>Sat, 31 Oct 2026 22:32:22 +0000</pubDate>
      <link>https://dev.to/bananafast/we-compressed-28-photos-at-15-settings-heres-where-quality-stops-paying-off-dd4</link>
      <guid>https://dev.to/bananafast/we-compressed-28-photos-at-15-settings-heres-where-quality-stops-paying-off-dd4</guid>
      <description>&lt;p&gt;Most advice on image quality comes down to "use 80 or so." We wanted numbers, so we ran 28 photos through 15 JPEG and WebP settings and recorded the file size and an SSIM score for each one.&lt;/p&gt;

&lt;p&gt;The short version: going from JPEG quality 95 to 82 cut the typical photo by about half, and the SSIM score only moved from 0.998 to 0.978. Below that, each step saved less.&lt;/p&gt;

&lt;p&gt;Disclosure: we make &lt;a href="https://bananafast.com" rel="noopener noreferrer"&gt;BananaFast&lt;/a&gt;, a free set of in-browser photo tools, and this test uses the same encoder libraries as those tools. The data is free to reuse either way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The results
&lt;/h2&gt;

&lt;p&gt;Each row is the median across all 28 photos, which were 10.8 megapixels at the median. "Saved" compares each photo with its own JPEG at quality 95. SSIM runs from 0 to 1, where 1 means identical to the source.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Quality&lt;/th&gt;
&lt;th&gt;Typical size (KB)&lt;/th&gt;
&lt;th&gt;Saved&lt;/th&gt;
&lt;th&gt;SSIM&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2,608&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;td&gt;0.998&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;92&lt;/td&gt;
&lt;td&gt;2,076&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;td&gt;0.996&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;1,932&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;0.997&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;85&lt;/td&gt;
&lt;td&gt;1,446&lt;/td&gt;
&lt;td&gt;41%&lt;/td&gt;
&lt;td&gt;0.986&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;82&lt;/td&gt;
&lt;td&gt;1,172&lt;/td&gt;
&lt;td&gt;51%&lt;/td&gt;
&lt;td&gt;0.978&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;1,071&lt;/td&gt;
&lt;td&gt;54%&lt;/td&gt;
&lt;td&gt;0.974&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;832&lt;/td&gt;
&lt;td&gt;65%&lt;/td&gt;
&lt;td&gt;0.967&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;720&lt;/td&gt;
&lt;td&gt;69%&lt;/td&gt;
&lt;td&gt;0.961&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;65&lt;/td&gt;
&lt;td&gt;628&lt;/td&gt;
&lt;td&gt;73%&lt;/td&gt;
&lt;td&gt;0.954&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;570&lt;/td&gt;
&lt;td&gt;76%&lt;/td&gt;
&lt;td&gt;0.944&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JPEG&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;463&lt;/td&gt;
&lt;td&gt;80%&lt;/td&gt;
&lt;td&gt;0.934&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebP&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;1,511&lt;/td&gt;
&lt;td&gt;38%&lt;/td&gt;
&lt;td&gt;0.985&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebP&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;840&lt;/td&gt;
&lt;td&gt;65%&lt;/td&gt;
&lt;td&gt;0.969&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebP&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;568&lt;/td&gt;
&lt;td&gt;76%&lt;/td&gt;
&lt;td&gt;0.957&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebP&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;487&lt;/td&gt;
&lt;td&gt;78%&lt;/td&gt;
&lt;td&gt;0.949&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What stood out
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The first cuts are the cheapest.&lt;/strong&gt; Quality 95 to 82 saved about 51% for 0.020 of SSIM. Quality 60 to 50 saved only about 4 more percentage points for another 0.010.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebP helps, but compare results rather than setting numbers.&lt;/strong&gt; WebP at quality 80 was about 26% smaller than JPEG at quality 82, with an SSIM about 0.009 lower. The two quality scales aren't the same.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The same setting gives very different sizes.&lt;/strong&gt; At JPEG quality 82, plant photos ran about 178 KB per megapixel and food photos about 85 KB. Those groups are small (4 and 2 photos), but detailed scenes do cost more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quality alone rarely hits a small file limit.&lt;/strong&gt; Upload forms and web guides often ask for under 500 KB or 1 MB. Here's how many photos got there at their full pixel size:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;JPEG quality&lt;/th&gt;
&lt;th&gt;Under 500 KB&lt;/th&gt;
&lt;th&gt;1 MB or less&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;82&lt;/td&gt;
&lt;td&gt;1 of 28&lt;/td&gt;
&lt;td&gt;7 of 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;4 of 28&lt;/td&gt;
&lt;td&gt;17 of 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;10 of 28&lt;/td&gt;
&lt;td&gt;25 of 28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;17 of 28&lt;/td&gt;
&lt;td&gt;26 of 28&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Even at quality 50, 11 of the 28 were still over 500 KB. If you have a small limit, you'll usually need to reduce the pixel dimensions too. This test didn't measure resizing, only how far quality alone gets you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we tested
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Photos:&lt;/strong&gt; 28 photographs from Wikimedia Commons, all marked CC0: people, landscapes, cities, night scenes, plants, food and indoor scenes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encoders:&lt;/strong&gt; MozJPEG and libwebp through the jSquash libraries, run on a Mac on October 30, 2026.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Similarity:&lt;/strong&gt; SSIM on brightness only, with an 11-pixel window.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It's a small sample.&lt;/strong&gt; 28 photos can't represent every kind of picture, so treat this as a guide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The sources were already compressed.&lt;/strong&gt; These are JPEG files as published, not camera originals, and that can flatter the scores at high settings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SSIM isn't your eyes.&lt;/strong&gt; It's a math score, and we didn't run a test with human viewers, so we don't claim which setting "looks the same." Brightness-only SSIM also ignores color.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medians don't always move smoothly.&lt;/strong&gt; JPEG 92 scored slightly below 90 in the table above (0.996 and 0.997). We haven't looked into why, so the per-photo data may be more useful than that one row.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What we'd do with this
&lt;/h2&gt;

&lt;p&gt;These are starting points from this test, not rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For general web photos, try JPEG around quality 82, or WebP around 80 if your platform takes it.&lt;/li&gt;
&lt;li&gt;For photos you plan to print or edit again, stay at 90 or higher.&lt;/li&gt;
&lt;li&gt;For a hard file size limit, resize first and then compress.&lt;/li&gt;
&lt;li&gt;Check low settings with your own eyes on your own images.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get the data
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://bananafast.com/data/photo-compression-test-2026.csv" rel="noopener noreferrer"&gt;full results are a free CSV&lt;/a&gt;: every photo at every setting, with a link to each source image. The &lt;a href="https://bananafast.com/guides/photo-compression-test" rel="noopener noreferrer"&gt;original write-up is here&lt;/a&gt;. Please link to it if you cite the numbers.&lt;/p&gt;

&lt;p&gt;If you run this on your own images and get something different, we'd like to hear about it in the comments, especially from anyone testing with camera originals or a color-aware metric.&lt;/p&gt;

</description>
      <category>webperf</category>
      <category>webdev</category>
      <category>performance</category>
      <category>images</category>
    </item>
    <item>
      <title>Image size cheat sheet for 2026 (social, shops, email, visa photos)</title>
      <dc:creator>BananaFast</dc:creator>
      <pubDate>Thu, 22 Oct 2026 19:35:41 +0000</pubDate>
      <link>https://dev.to/bananafast/image-size-cheat-sheet-for-2026-social-shops-email-visa-photos-3jpb</link>
      <guid>https://dev.to/bananafast/image-size-cheat-sheet-for-2026-social-shops-email-visa-photos-3jpb</guid>
      <description>&lt;p&gt;If you build sites or apps, you keep looking up the same numbers: how wide an Instagram post is, what X does to a header, how small a visa photo has to be. Here they are on one page. Every number comes from the platform's own help pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Social media
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Image&lt;/th&gt;
&lt;th&gt;Size (px)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Instagram feed post&lt;/td&gt;
&lt;td&gt;1080 wide, 1080 × 1080 to 1080 × 1440&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Instagram / Facebook story&lt;/td&gt;
&lt;td&gt;1080 × 1920&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook Page profile&lt;/td&gt;
&lt;td&gt;320 × 320 (shown as a circle)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Facebook Page cover&lt;/td&gt;
&lt;td&gt;851 × 315&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X profile photo&lt;/td&gt;
&lt;td&gt;400 × 400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X header&lt;/td&gt;
&lt;td&gt;1500 × 500 (up to 60 px cropped top and bottom)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn profile background&lt;/td&gt;
&lt;td&gt;1584 × 396&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LinkedIn Company Page cover&lt;/td&gt;
&lt;td&gt;1512 × 256&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube thumbnail&lt;/td&gt;
&lt;td&gt;3840 × 2160 (min 640 wide)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pinterest pin&lt;/td&gt;
&lt;td&gt;1000 × 1500&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Online shops
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Marketplace&lt;/th&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Etsy&lt;/td&gt;
&lt;td&gt;2000 px or more on each side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;eBay&lt;/td&gt;
&lt;td&gt;at least 500 × 500, about 1600 × 1600 recommended&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shopify&lt;/td&gt;
&lt;td&gt;2048 × 2048 for square images&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Attachments
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Limit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gmail&lt;/td&gt;
&lt;td&gt;25 MB per email&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outlook.com&lt;/td&gt;
&lt;td&gt;25 MB per email&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discord (free)&lt;/td&gt;
&lt;td&gt;20 MB per file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Email encoding adds about a third, so aim for roughly 18 MB of photos in Gmail and 14 MB in the Outlook desktop app.&lt;/p&gt;

&lt;h2&gt;
  
  
  US visa photo files
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Photo&lt;/th&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Visa (DS-160 / DS-260)&lt;/td&gt;
&lt;td&gt;square, 600 to 1200 px&lt;/td&gt;
&lt;td&gt;JPEG, 240 KB or less&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DV lottery&lt;/td&gt;
&lt;td&gt;exactly 600 × 600&lt;/td&gt;
&lt;td&gt;JPEG, 240 KB or less&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The full sheet, with a source link on every row, profile-photo notes and FAQs, is here: &lt;strong&gt;&lt;a href="https://bananafast.com/guides/photo-size-cheat-sheet" rel="noopener noreferrer"&gt;Photo size cheat sheet for 2026&lt;/a&gt;&lt;/strong&gt;. I update the date at the top whenever a platform changes its numbers.&lt;/p&gt;

&lt;p&gt;If you need to hit one of these sizes, &lt;a href="https://bananafast.com/resize-image" rel="noopener noreferrer"&gt;BananaFast's resize tool&lt;/a&gt; does it in the browser, so nothing is uploaded.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>socialmedia</category>
    </item>
  </channel>
</rss>
