Smol for technical writers

Compress Screenshots for Documentation Without Blurry Text

A docs site with a few hundred Retina screenshots and a handful of GIFs gets heavy fast, and a repository or help center can reject the big ones. Smol batch-resizes and compresses screenshots and screen recordings on your Mac, so UI text stays readable and the files get far smaller.
  • Resize a folder of Retina screenshots to your docs column width
  • Set quality, then zoom in to check small UI text
  • Turn heavy screen recordings into small MP4 or WebM clips
  • Runs on your Mac, so unreleased UI never leaves it

$29 once per Mac · No subscription · Files never leave your Mac

Smol’s main window in dark and light appearance with an image, a PDF and a video queued and a Compress 3 Files button
By the Smol team10 min read

To compress screenshots for documentation, resize each one to the width your docs column actually shows (at most twice that for Retina), then compress with a quality you checked by zooming into the smallest UI text. Replace GIFs with short MP4 or WebM clips. Here are the limits and the settings.

What you are publishing, the limit or cost you hit, and the Smol setting
What you are publishingThe limit you hitThe Smol setting
Retina screenshots (PNG)A full-screen capture on a 14-inch MacBook Pro is 3024 × 1964 pixels, far more than a docs column showsCompress, output PNG, quality 75 to start, maximum dimension about twice your column width
Screenshots attached to GitHub issues or pull requests10 MB for images and GIFs; PNG, GIF, JPEG and SVG are listed, WebP is notOutput PNG or JPG; check the largest file in the folder
Animated GIFs3.7 MB as a GIF against 551 KB as MP4 in web.dev’s exampleRecord as video, then Compress to MP4 (H.264 for widest playback)
Screen recordingsAbout a megabyte per second of Retina recording in our testVideo resolution 1920, quality High or Web; trim dead time first

What size limits do documentation screenshots run into?

The hard limits are the ones where you attach files directly, such as GitHub. Docs sites mostly have soft limits: slow pages, large repositories and readers on bad connections. These are the published figures, each read on the date shown at its source.

Published limits and format facts relevant to docs images and clips
WhatThe figureSource
Image or GIF attached on GitHub10 MBGitHub Docs
Video attached on GitHub10 MB in a repository owned by a user or organization on a free plan; 100 MB on a paid plan; .mp4, .mov and .webmGitHub Docs
Image formats in GitHub’s all-contexts listPNG, GIF, JPEG and SVG. WebP is not on that listGitHub Docs
macOS screenshot and recording formatsScreenshots are .png, screen recordings are .mov, and keyboard-shortcut screenshots land on the desktopApple Support
Best encoding for screenshotsMDN: for screenshots, diagrams, logos and line art, “prefer lossless encoding”, because blurring and colored fringes around text are very visibleMDN
GIF color depthEach GIF pixel is an 8-bit index into a palette of 24-bit colorsMDN

MDN’s advice to prefer lossless for screenshots is the reason to be careful here. Smol has no lossless mode for images; it always re-encodes. That is fine for a docs page read in a browser, as long as you zoom in on the result (the settings section shows how). If you need pixel-identical output, a lossless optimizer such as ImageOptim is the right tool, and we say so on our own comparison page.

Check your own platform’s help page for its ceiling before you set one. If your docs live in a wiki, our guide to Notion and Confluence uploads covers that case.

Which settings compress screenshots for documentation without blurring text?

Resize first, then set quality. The pixel count drives file size more than the quality slider does, and a docs column rarely shows more than 800 to 1000 CSS pixels of width.

Smol settings by kind of docs image (quality numbers are starting points we chose, not measured thresholds)
ImageFormatQualityMaximum dimension
UI screenshot, regular textPNG75 (the default)1600 for an 800 px column
Dense UI, code, 11 pt terminal textPNG85 to start, then raise it if letters smear1600 to 2000
Full-window screenshot with photos or a gradient backgroundJPG75 to 801600
Hero or marketing image on the docs home pageAVIF or WebP, if your platform accepts it65 to 75Match its display width times two
Screenshot for a GitHub issuePNG or JPG75Check that the file is under 10 MB
Screen recordingMP4, H.264High, or Web for a smaller fileResolution 1920

Smol sets quality and pixel size, not output bytes, so check the largest file in the folder against your cap. It does have a target-file-size mode for images that accepts 4 to 4096 KB; it aims for a band, can land over your number, and is slow, about 28 seconds for one 768 × 512 image. Use it only for the odd file that refuses to fit.

How do I check that the text is still readable?

  • Open the output at 100% and read the smallest label in the image, not the title bar.
  • Compare a menu with thin gray text before and after. Banding around letters means raise quality.
  • Judge it at the size readers see, which on a Retina display means looking at it at 2x.

For a sense of what quality does to a lot of PNGs at once, our benchmark compressed 24 small (768 × 512) photographs as PNG at quality 75 and saved 69.2%. ImageOptim at its default lossless settings saved 4.3% on the same files. Photographs are not UI screenshots, so treat those figures as direction, not a promise for your screens.

Why is a Retina screenshot file size so large, and what docs image size should I use?

A Retina screenshot is large because macOS captures every physical pixel. The 14-inch MacBook Pro in our screen recording test produced 3024 × 1964 frames, 5.94 megapixels, or 2.86 times a 1080p frame.

You do not need all of it. MDN’s responsive images guide describes serving a higher-resolution file to denser screens at the same display size, and its example is 39 KB for a 320 px image and 93 KB for the 640 px version. So the right docs image size is a pixel width of about twice the column, and the file size follows from that. Past 2x, extra pixels add bytes without adding sharpness.

A practical rule for a docs team: pick one column width, write down 2x of it, and give every contributor the same number. Smol’s resize modes are fit, fill, width and height. Use fit so nothing is cropped (fill crops, with no control over what goes). One job produces one size, so if your docs serve 1x and 2x files, that is two runs.

GIF vs MP4 for docs: which should I use?

Use MP4 for almost any clip longer than a second or two. In web.dev’s example the GIF was 3.7 MB, the MP4 551 KB and the WebM 341 KB, and each GIF pixel is only an 8-bit index into a palette.

In our own GIF to MP4 measurements, a 5-second UI clip at 1280 × 800 was 183,238 bytes as a GIF and 72,948 as H.264 at CRF 23, which is 2.5 times smaller. A photographic clip was 33.5 times smaller. Interface recordings are the near-best case for GIF, and the video still won.

GIF or video for a docs animation
If the animation is…UseWhy
Under about 2 seconds, tiny, flat colorsGIF is acceptableWorks everywhere an img tag does, including places that block video
A UI walkthrough of 3 to 30 secondsMP4 (H.264), plus WebM if you canSmaller, full color, and pausable
A photographic or gradient clipMP4GIF’s 8-bit palette bands and the file balloons
An attachment to a GitHub issueMP4 or MOVListed as supported video types; 10 MB on a free-plan repository

To make video behave like a GIF on a page, web.dev recommends <video autoplay loop muted playsinline>. One caution from our tests: Smol does not convert animated GIFs. Record or export as video instead, and let Smol compress that. The GIF to MP4 guide shows the route that works.

How do I compress a docs screenshot folder and a screen recording for docs?

Work in batches, per release or per article. macOS drops screenshots on the desktop by default and records to .mov, so the pile builds up quickly.

  1. Collect the originals in one folder

    Keep them untouched. Smol writes a copy with a _compressed suffix beside each file by default.

  2. Drag the folder into Smol

    Screenshots and recordings can go in the same batch. Each file shows its own progress and savings.

  3. Set images to PNG at quality 75 and a maximum dimension of 2x your column

    Leave the resize mode on fit. Then raise quality for any image with dense small text.

  4. Set video to MP4, resolution 1920, quality High

    On a 60-second, 56,384,195-byte Retina recording, Smol’s default (H.265, High) gave 3,691,160 bytes, 93.5% smaller, and resolution 1920 gave 1,399,221 bytes at 1662 × 1080, 97.5% smaller. That was Smol 1.0.34, and the recording had no audio. For widest playback choose H.264 and check that the clip plays where your docs are viewed.

  5. Check the biggest file and one image at full zoom

    Sort by size, confirm the cap you care about, and read the smallest text in one screenshot before you upload the batch.

If your screenshots collect in one folder, you can have Smol watch it. Our watched folder guide explains the catch: watched folders can make already-optimized files larger, so use them only for fresh, unoptimized screenshots. The Finder Quick Action is the alternative when you would rather compress on demand. For repositories, compress before you commit; see why Git never forgets. Trim dead time from a recording before you compress it. Support teams recording customers’ screens will find more in our screen recordings for support guide, and README-heavy repositories in the GitHub README media guide. Read the screen recording guide for what moves the size.

What do docs teams use to compress screenshots today?

Free options come first here, because for a handful of images they are often enough.

Ways to compress documentation screenshots on a Mac
OptionGood atLimit
macOS Screenshot and PreviewCapture and one-off exports; free and built inNo batch quality control; resizing is manual
sips in TerminalFast scripted resizing; freeResize and convert, not a size optimizer
pngquant plus zopfli (GitLab’s write-up)Big PNG savings: in GitLab’s example 134 KB became 42 KB at 256 colors and 38 KB at 64Command-line setup and automation you maintain; lossy color reduction
ImageOptimLossless optimization; freeLossless by default, so savings are smaller than a lossy pass; images only
SmolResize, quality, video and PDFs in one drag-and-drop batch; Quick Action and watched foldersNo lossless mode, slower than a shell loop, macOS only, $29

Teams pricing: Smol is Solo $29 once for one Mac, Team $49 once for three Macs, or Enterprise at $20 a seat for 5 to 500 seats. Presets live on one Mac, so a docs team keeps consistent output by writing the settings down (format, quality, maximum dimension) in the style guide and recreating the preset on each Mac. If your build system needs compression on a server, the Smol API exists for that.

When is Smol the wrong tool for documentation images?

It is the wrong tool in a few clear cases, and a short list saves you a purchase you do not need:

  • You need lossless or pixel-identical screenshots, for example to show a one-pixel misalignment. Smol always re-encodes; use a lossless optimizer.
  • Your diagrams are SVG. Smol does not handle SVG.
  • You must convert animated GIFs. Smol cannot convert them (tested in 1.0.34), so re-export from your recorder as video.
  • Your pipeline is a Linux CI build. Use an image library in the build, or the Smol API.
  • You have a handful of images a year. Preview and the free tools above are enough.

Frequently asked questions

How do I compress screenshots for documentation without losing quality?

Resize first, because pixels matter more than the quality slider. Set the maximum dimension to about twice your docs column width, compress at quality 75, then zoom to 100% and read the smallest text. Raise quality for dense UI. Smol always re-encodes, so for pixel-identical output use a lossless optimizer.

What is a good docs image size in pixels and kilobytes?

Pick pixels from your layout: roughly twice the column width for Retina, so 1600 pixels for an 800 pixel column. File size then follows from content. Mostly flat UI compresses far smaller than a screenshot with photos. Set a cap per platform, such as GitHub’s 10 MB for attached images, and check the largest output.

Why is my Retina screenshot file size so large?

macOS captures every physical pixel. A full-screen capture on the 14-inch MacBook Pro we tested is 3024 by 1964 pixels, 5.94 megapixels, and PNG stores flat UI at full detail. Resizing to about twice the displayed width and compressing is the practical fix. Extra resolution past 2x adds bytes without adding sharpness.

GIF vs MP4 for docs: which is better?

MP4 for most clips. In web.dev’s example the same animation was 3.7 MB as a GIF and 551 KB as MP4, and GIF uses an 8-bit palette. Use GIF only for tiny, short, flat clips where an img tag is required. For video that acts like a GIF, add autoplay, loop, muted and playsinline.

How do I shrink a screen recording for docs?

Trim the dead time, then compress to MP4 at a reduced resolution. A 60-second Retina recording was 56,384,195 bytes in our test, and Smol at resolution 1920 produced 1,399,221 bytes (Smol 1.0.34, no audio). Budget about a megabyte per second for an untouched recording, then check the clip plays where readers will watch it.

Is it safe to compress unreleased product screenshots?

Smol runs on your Mac, uploads nothing and needs no account, so unreleased UI stays on your machine. Online compressors upload files to their servers, which is a different arrangement. Confirm your company’s own policy for confidential material.

Keep reading

Smol for other teams