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

shakify

v1.0.1

Published

๐Ÿ” Smart Tree-shaking Analyzer for npm packages

Readme

๐Ÿชฉ shakify NPM version NPM downloads

๐Ÿƒ A CLI tool to shake the truth out of your npm packages


๐Ÿ’ก What is this?

shakify is your bundleโ€™s personal trainer.
It inspects npm packages and tells you:

  • ๐Ÿชถ Is it tree-shakeable?
  • ๐Ÿ”Œ Is it ESM or just CommonJS in disguise?
  • ๐Ÿ“ฆ How heavy are each of its exports? In other words โ€” it helps you avoid bloated bundles by letting you pick smarter, leaner dependencies.

Think of it as a lie detector for npm modules that claim to be lightweight.


โœจ Features

  • โœ… Detects tree-shaking support
  • ๐Ÿ” Shows ESM vs CommonJS support
  • ๐Ÿ“ฆ Analyzes per-export size (raw + gzipped)
  • โšก Caches results (with manual clearing via --clear-cache)
  • ๐Ÿ“ฆ Downloads and inspects real published packages (not guesswork)
  • ๐ŸŒ€ CLI spinner magic for extra drama

๐Ÿ› ๏ธ Install

npm install -g shakify

๐Ÿš€ Usage

npx shakify-cli <package-name>

Example:

npx shakify-cli lodash-es

To clear cached results:

npx shakify-cli react --clear-cache

๐Ÿ–ผ Sample Output

=== Package Analysis: [email protected] ===
ESM Support:        true
CommonJS Support:   false
Side Effects Flag:  false
Tree-shakeable:     true
Cached Result:      false
Export sizes:
.               | Size:    6248 bytes | Gzipped:   1931 bytes
/debounce       | Size:     882 bytes | Gzipped:    410 bytes
/throttle       | Size:     768 bytes | Gzipped:    390 bytes

๐Ÿ“ฆ Real Benefits

shakify helps you:

  • โœ… Avoid packages that canโ€™t be tree-shaken
  • โœ… Spot fat exports before they hit your bundle
  • โœ… Replace bloated deps with slimmer alternatives
  • โœ… Make smarter decisions during package selection
  • โœ… Sleep better knowing your JS is lean and mean ๐Ÿ’ค

๐Ÿง  Ideal for...

  • Frontend devs who care about performance
  • Framework authors and lib maintainers
  • CI/CD optimization nerds
  • You (yes, you reading this ๐Ÿ‘€)

๐Ÿ” Caching

Shakify caches results in your systemโ€™s temp directory.

Want to refresh the results?

npx shakify-cli <package-name> --clear-cache

Shakify doesnโ€™t judge โ€” it just snitches ๐Ÿ“ฆโš–๏ธ This is a tool for the devs who check bundle sizes like others check calories.
If thatโ€™s you โ€” welcome, friend. Let's keep those kilobytes lean and those load times snappy. If you enjoy it, share it. If it breaks, yell at your terminal (or open an issue, whichever works). Stay lightweight. Stay skeptical. Stay shakified ๐Ÿชฉ

โœ๏ธ Note from the Author

This all started with a simple question:
"Why is my bundle bigger than my app?" Turns out, not all npm packages are what they seem. Some are lean, modular marvels. Others areโ€ฆ well, more like vending machines that give you the entire aisle. So I built shakify โ€” a tool to sniff out the truth behind the node_modules curtain. Whether you're optimizing your Next.js app, squeezing bytes out of a landing page, or just enjoy yelling at JavaScript in different ways, shakify is here to help. It won't fix all your problems, but it might make you think twice before importing moment.js ๐Ÿ˜…

โ€” cinfinit

๐Ÿ“ฆ Built with curiosity, and you know more curiosity.