<?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: Kyohei Taniguchi</title>
    <description>The latest articles on DEV Community by Kyohei Taniguchi (@kyohei-taniguchi).</description>
    <link>https://dev.to/kyohei-taniguchi</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%2F4079678%2Ff3d8018d-970b-49f8-bea0-a62c9218f7e5.jpeg</url>
      <title>DEV Community: Kyohei Taniguchi</title>
      <link>https://dev.to/kyohei-taniguchi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kyohei-taniguchi"/>
    <language>en</language>
    <item>
      <title>Why I Built a Native Mac Image Compressor That Never Uploads Your Photos</title>
      <dc:creator>Kyohei Taniguchi</dc:creator>
      <pubDate>Sun, 16 Aug 2026 04:24:10 +0000</pubDate>
      <link>https://dev.to/kyohei-taniguchi/why-i-built-a-native-mac-image-compressor-that-never-uploads-your-photos-5gim</link>
      <guid>https://dev.to/kyohei-taniguchi/why-i-built-a-native-mac-image-compressor-that-never-uploads-your-photos-5gim</guid>
      <description>&lt;p&gt;Image compression is one of those tiny tasks that should be simple.&lt;/p&gt;

&lt;p&gt;You have a large JPEG, PNG, or HEIC file. You want to make it smaller. So you search for an image compressor, upload the file, wait for it to process, and download the result.&lt;/p&gt;

&lt;p&gt;It works.&lt;/p&gt;

&lt;p&gt;But I kept thinking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why should I upload an image somewhere just to make the file smaller?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question eventually became &lt;strong&gt;SnapSlim&lt;/strong&gt;, a small native macOS app for compressing images entirely on your Mac.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcrfgq8kec59ojbzlj3f2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcrfgq8kec59ojbzlj3f2.png" alt="SnapSlim running natively on macOS." width="800" height="714"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem I wanted to solve
&lt;/h2&gt;

&lt;p&gt;There are already many excellent online image compression services.&lt;/p&gt;

&lt;p&gt;For occasional use, they are convenient.&lt;/p&gt;

&lt;p&gt;But I wanted something slightly different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No image uploads&lt;/li&gt;
&lt;li&gt;No account required&lt;/li&gt;
&lt;li&gt;No cloud processing&lt;/li&gt;
&lt;li&gt;No complicated settings&lt;/li&gt;
&lt;li&gt;Support for JPEG, PNG, and HEIC&lt;/li&gt;
&lt;li&gt;Good compression without obviously damaging the image&lt;/li&gt;
&lt;li&gt;A simple native Mac experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was not to build a giant image-processing suite.&lt;/p&gt;

&lt;p&gt;I wanted something I could open, drop images into, compress them, and move on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Everything stays on your Mac
&lt;/h2&gt;

&lt;p&gt;SnapSlim processes images locally.&lt;/p&gt;

&lt;p&gt;Your photos are not sent to a SnapSlim server because there is no image-processing server involved.&lt;/p&gt;

&lt;p&gt;For me, this was important for two reasons.&lt;/p&gt;

&lt;p&gt;First, privacy.&lt;/p&gt;

&lt;p&gt;Images can contain personal information, screenshots, documents, client materials, or photos that simply do not need to leave your computer.&lt;/p&gt;

&lt;p&gt;Second, speed and simplicity.&lt;/p&gt;

&lt;p&gt;If the computer already has enough power to compress an image, sending that image across the internet and downloading it again feels unnecessary.&lt;/p&gt;

&lt;p&gt;Local processing also means the app can keep working without depending on an external compression API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compression without chasing the smallest possible file
&lt;/h2&gt;

&lt;p&gt;Making an image tiny is easy if you are willing to destroy enough quality.&lt;/p&gt;

&lt;p&gt;That was not the goal.&lt;/p&gt;

&lt;p&gt;SnapSlim tries to find a more practical balance: reduce file size while keeping visual degradation small.&lt;/p&gt;

&lt;p&gt;For example, one of my JPEG tests produced:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13.7 MB → 9.9 MB&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is about a &lt;strong&gt;28% reduction&lt;/strong&gt;, while the measured SSIM was approximately &lt;strong&gt;0.981&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The exact result depends on the image, of course.&lt;/p&gt;

&lt;p&gt;Some images compress much better than others.&lt;/p&gt;

&lt;p&gt;The important part for me was not maximizing the percentage shown in the UI. It was making the compressed image still look like the image I started with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a native Mac app?
&lt;/h2&gt;

&lt;p&gt;I deliberately built SnapSlim as a macOS application rather than another web app.&lt;/p&gt;

&lt;p&gt;A native application fits the problem surprisingly well:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The files already exist locally.&lt;/li&gt;
&lt;li&gt;Compression is CPU work that the Mac can perform itself.&lt;/li&gt;
&lt;li&gt;There is no need to upload the source images.&lt;/li&gt;
&lt;li&gt;Drag-and-drop fits naturally into a desktop workflow.&lt;/li&gt;
&lt;li&gt;The app can bundle the tools it needs and operate independently.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;SnapSlim currently targets Apple Silicon Macs running macOS 14 or later.&lt;/p&gt;

&lt;p&gt;Under the hood, different image formats require different approaches, but the user should not have to care about that.&lt;/p&gt;

&lt;p&gt;The interface should remain simple even when the implementation is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the first version
&lt;/h2&gt;

&lt;p&gt;The first version grew from a compression experiment into a real distributable Mac application.&lt;/p&gt;

&lt;p&gt;The current Direct edition handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JPEG&lt;/li&gt;
&lt;li&gt;PNG&lt;/li&gt;
&lt;li&gt;HEIC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It bundles its compression components with the application, so users should not need to install Homebrew packages or configure command-line tools themselves.&lt;/p&gt;

&lt;p&gt;A surprisingly large part of building the app was not image compression itself.&lt;/p&gt;

&lt;p&gt;Distribution involved things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;application signing&lt;/li&gt;
&lt;li&gt;hardened runtime&lt;/li&gt;
&lt;li&gt;bundled executable verification&lt;/li&gt;
&lt;li&gt;notarization&lt;/li&gt;
&lt;li&gt;Gatekeeper checks&lt;/li&gt;
&lt;li&gt;license notices&lt;/li&gt;
&lt;li&gt;release packaging&lt;/li&gt;
&lt;li&gt;testing the final &lt;code&gt;.app&lt;/code&gt;, not just the source code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That work made me appreciate how much engineering exists between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“The program works on my Mac.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Someone else can safely download and use this.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Keeping the first version small
&lt;/h2&gt;

&lt;p&gt;I am intentionally keeping SnapSlim focused.&lt;/p&gt;

&lt;p&gt;The current goal is not to compete with Photoshop, Lightroom, or full image editors.&lt;/p&gt;

&lt;p&gt;SnapSlim does one job:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;make image files smaller with as little friction as possible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Direct version is the first public version.&lt;/p&gt;

&lt;p&gt;I plan to keep improving it based on actual usage rather than adding a large list of features in advance.&lt;/p&gt;

&lt;p&gt;A Mac App Store version is also planned later, but I wanted to ship the Direct version first and start learning from real users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try SnapSlim
&lt;/h2&gt;

&lt;p&gt;If you use a Mac and regularly need to shrink JPEG, PNG, or HEIC images, I would love to hear what you think.&lt;/p&gt;

&lt;p&gt;Especially:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What kinds of images do you usually compress?&lt;/li&gt;
&lt;li&gt;Is local-only processing important to you?&lt;/li&gt;
&lt;li&gt;What would make this workflow noticeably faster or easier?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can try SnapSlim from the Flat Harbor website:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://flatharbor.com/snapslim/" rel="noopener noreferrer"&gt;https://flatharbor.com/snapslim/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Feedback is very welcome.&lt;/p&gt;

</description>
      <category>macos</category>
      <category>indiedev</category>
      <category>swift</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
