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

pipewright

v0.1.3

Published

Scaffold CI/CD pipelines and project boilerplates interactively

Readme


The Problem

Every new project starts the same way: copy-paste a Dockerfile from the last repo, tweak a GitHub Actions YAML until the indentation stops breaking, set up ESLint again, configure TypeScript again. This is 30–60 minutes of mechanical work that adds zero business value.

Pipewright eliminates that.


Demo

$ pipewright init my-api

? Framework: NestJS
? Package manager: pnpm
? Add CI/CD pipeline? Yes
? CI/CD provider: GitHub Actions
? Node version for CI: 20
? Include Dockerfile? Yes
? Include release pipeline? No

✔ Files generated

  create  package.json
  create  tsconfig.json
  create  tsconfig.build.json
  create  nest-cli.json
  create  .gitignore
  create  .eslintrc.js
  create  .prettierrc
  create  src/main.ts
  create  src/app.module.ts
  create  src/app.controller.ts
  create  src/app.service.ts
  create  src/app.controller.spec.ts
  create  test/app.e2e-spec.ts
  create  test/jest-e2e.json
  create  Dockerfile
  create  .dockerignore
  create  .github/workflows/ci.yml

✔ Project my-api created at /projects/my-api

  cd my-api
  pnpm install

Installation

# npm
npm install -g pipewright

# pnpm
pnpm add -g pipewright

# yarn
yarn global add pipewright

# no install needed
npx pipewright init my-project

Commands

pipewright init [project-name]

Scaffolds a complete project from scratch — framework files, configs, and CI/CD pipeline.

Options:
  -f, --framework <framework>     nestjs | vue
  -p, --provider <provider>       github | azure | gitlab
  -m, --package-manager <pm>      npm | pnpm | yarn        (default: npm)
      --node <version>            Node version for CI      (default: 20)
      --docker                    Include Dockerfile
      --release                   Include release/publish pipeline
      --no-pipeline               Skip CI/CD generation

Examples:

# Interactive
pipewright init

# NestJS + GitHub Actions + Docker, no prompts
pipewright init my-api --framework nestjs --provider github --docker --yes

# Vue 3 + Azure DevOps + pnpm
pipewright init my-frontend --framework vue --provider azure -m pnpm

# Preview without writing files
pipewright init my-api --framework nestjs --provider github --dry-run

pipewright add pipeline

Adds a CI/CD pipeline to an existing project. Auto-detects framework and package manager.

# Interactive
pipewright add pipeline

# Non-interactive
pipewright add pipeline --provider github --docker

pipewright add dockerfile

Adds an optimized multi-stage Dockerfile to an existing project.

# Auto-detect framework
pipewright add dockerfile

# Explicit
pipewright add dockerfile --framework nestjs --port 3000 --node 20

Global Options

| Option | Description | |---|---| | -c, --cwd <dir> | Set the working directory | | -y, --yes | Accept all defaults, skip prompts | | --dry-run | Show what would be created without writing | | -F, --force | Overwrite existing files | | --silent | Only output errors | | --no-spinner | Disable spinners (auto-disabled in CI) |


What Gets Generated

NestJS + GitHub Actions

my-app/
├── src/
│   ├── main.ts
│   ├── app.module.ts
│   ├── app.controller.ts
│   ├── app.controller.spec.ts
│   └── app.service.ts
├── test/
├── .github/
│   └── workflows/
│       └── ci.yml
├── package.json
├── tsconfig.json
├── nest-cli.json
└── .gitignore

Supported Combinations

| | GitHub Actions | Azure DevOps | GitLab CI | |---|:---:|:---:|:---:| | NestJS | ✅ | ✅ | ✅ | | Vue 3 | ✅ | ✅ | ✅ |


Requirements

  • Node.js >=18.17

Contributing

Contributions are welcome. See CONTRIBUTING.md for patterns, architecture explanation, and step-by-step guides to add new providers and generators.


License

MIT — see LICENSE.


Acknowledgements

Inspired by create-t3-app and the Nest CLI.