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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@woodl/flightplan

v2.3.1

Published

- `1.0.0` - Created NPM package - `1.0.1` - Small update - `2.0.0` - Depend on [pull-request](https://github.com/pstadler/flightplan/pull/182) to skip Fibers - `2.0.1` - Bugfix - `2.0.2` - Dynamic choices - `2.1.0` - Updated npmp to currently

Readme

@woodl / flightplan

Version history

  • 1.0.0 - Created NPM package
  • 1.0.1 - Small update
  • 2.0.0 - Depend on pull-request to skip Fibers
  • 2.0.1 - Bugfix
  • 2.0.2 - Dynamic choices
  • 2.1.0 - Updated npmp to currently latest version, improves speed of installation a bit
  • 2.1.2 - Use npx instead of package.json script
  • 2.2.0 - Support for Angular v20+ new output directory structure (dist-new/browser) - Breaking change
  • 2.3.0 - Memory fixes (TI-1655): max_memory_restart in PM2 template (configurable via config.pm2.maxMemoryRestart or per-target pm2.maxMemoryRestart, default 1500M); systemd drop-in provisioning step with MALLOC_ARENA_MAX=2 + nvm PATH (fixes glibc arena leak and node-version-on-reboot landmine); pm2-logrotate install (100M / retain 7 / compress)
  • 2.3.1 - Removed the pm2-logrotate install again: rotation deletes logs older than the retention window, and all logs must be kept (customer requirement). Log shipping to S3 is planned instead.

Configuration

Passed in via flightplan.config.js of the consuming project:

pm2: {
    script: `/server/app.www.js`,   // app entry point, relative to the active deploy
    maxMemoryRestart: '1500M',      // optional, default 1500M — PM2 recycles a worker above this
},
target: {
    rel: {
        // ...
        pm2: { maxMemoryRestart: '800M' }, // optional per-target override (small droplets)
    },
},

Every deploy also (re)writes /etc/systemd/system/pm2-root.service.d/tactile.conf on the target droplet with:

  • MALLOC_ARENA_MAX=2 — caps glibc malloc-arena fragmentation from native threads (sharp/zlib), which otherwise grows worker RSS unboundedly until the kernel OOM-killer strikes. Note this only takes effect on the next PM2 daemon start (reboot or manual systemctl stop pm2-root && pm2 kill && systemctl start pm2-root) — PM2's own config env cannot deliver it.
  • PATH pointing at the droplet's nvm default node — without this, a droplet reboot resurrects the app under the system node.

Suggested improvements

  • Make first ssh connection in such a way that we skip "yes" / "no" question first ssl
  • Retry functionality
  • Run code to see if it doesn't give an instant error

Adding a new version

# git commit -am "Usage of project specific query added"
# npm version patch # minor, major
# git push
npm publish