npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@343dev/optimizt

v11.0.0

Published

CLI image optimization tool

Readme

@343dev/optimizt

npm

Optimizt is a command-line tool that helps prepare images for the web.

It can compress PNG, JPEG, GIF, and SVG lossy or lossless, and create AVIF and WebP versions for raster images.

Rationale

As frontend developers, we have to care about pictures: compress PNG and JPEG, remove useless parts of SVG, create AVIF and WebP for modern browsers, and so on. One day, we got tired of using a bunch of apps for that, and created one tool that does everything we want.

Usage

Install:

npm install -g @343dev/optimizt

Optimize!

optimizt path/to/picture.jpg

Command Line Flags

  • --avif — create AVIF versions of images.
  • --webp — create WebP versions of images.
  • -f, --force — recreate AVIF and WebP versions even if they already exist.
  • -l, --lossless — optimize losslessly instead of lossily.
  • -v, --verbose — show detailed output (e.g. skipped files).
  • -c, --config — use a custom configuration file instead of the default.
  • -o, --output — write results to the specified directory.
  • -V, --version — display the tool version.
  • -h, --help — show help message.

Usage Examples

# optimize a single image
optimizt path/to/picture.jpg

# optimize multiple images losslessly
optimizt --lossless path/to/picture.jpg path/to/another/picture.png

# recursively create AVIF and WebP versions for all images in a directory
optimizt --avif --webp path/to/directory

# recursively optimize JPEG files in the current directory
find . -iname \*.jpg -exec optimizt {} +

Differences Between Lossy and Lossless

Lossy (Default)

Provides the best balance between file size reduction and minimal visual quality loss.

Lossless (--lossless flag)

  • AVIF/WebP: Uses lossless compression.
  • PNG/JPEG/GIF: Maximizes image quality at the expense of larger file sizes.
  • SVG: Settings are identical in both modes.

Configuration

Image processing leverages:

[!NOTE] In Lossless mode for JPEG, Guetzli is used. Repeated optimization may degrade visual quality.

Default settings are defined in .optimiztrc.cjs, which includes all supported parameters. Disable any parameter by setting it to false.

When using --config path/to/.optimiztrc.cjs, the specified configuration file will be used. If no --config is provided, Optimizt searches recursively from the current directory upward for .optimiztrc.cjs. If none is found, defaults are applied.

Troubleshooting

Errors like “spawn guetzli ENOENT”.

Ensure the ignore-scripts npm option is disabled. Details: funbox/optimizt/issues/9.

Docker

Pre-Built Image

# pull latest
docker pull 343dev/optimizt

# pull specific version
docker pull 343dev/optimizt:9.0.2

Manual Build

# clone repository
git clone https://github.com/343dev/optimizt.git
cd optimizt

# build image
docker build --tag 343dev/optimizt .

Alternatively:

# build directly from GitHub
# ignores .dockerignore (see: https://github.com/docker/cli/issues/2827)
docker build --tag 343dev/optimizt https://github.com/343dev/optimizt.git

Run Container

# mount current directory to /src in the container
docker run --rm --volume $(pwd):/src 343dev/optimizt --webp ./image.png

Integrations

Optimizt works seamlessly with:

Credits

Cute picture for the project was made by Igor Garybaldi.