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

cat-doubler

v0.10.0

Published

Universal scaffolder generator

Downloads

24

Readme

cat-doubler

Universal scaffolder generator that converts any project into reusable templates.

cat-doubler

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. License: MIT


What is this?

Looking for a simple way to turn your existing project into a reusable generator (scaffolder)? cat-doubler is the tool you need.

It analyzes your source code, identifies naming patterns, and generates a ready-to-use CLI tool that can scaffold new projects with different names. No complex configuration required - just point it at your project and specify the symbol name to replace.

cat-doubler itself runs in a Node.js environment, but the target project for conversion can be any type (Python packages, Go modules, Ruby gems, Java, .NET, C/C++, etc... any codebase).

For example, if you have a React component library project called MyAwesomeComponent into ./my-component directory:

cat-doubler ./my-component MyAwesomeComponent

This generates a scaffolder that can create new components with any name. The following creates a new project named NewShinyComponent:

# Run scaffolder
cd ./scaffolder
npm run start

Welcome to MyAwesomeComponent scaffolder [0.0.1]

# Enter new project details
Enter the new project name (in PascalCase): NewShinyComponent
Output directory [./output/my-new-project]: ./new-shiny-component

The generated CLI automatically handles all case variations (PascalCase, camelCase, kebab-case, snake_case, CONSTANT_CASE) throughout your entire codebase.

If you publish the scaffolder as a package, you can run it with just the npx command:

# Run the scaffolder with the npx command
npx my-awesome-component-generator

Key Features

  • Automatic case detection: Analysing and replaces all case variations of your symbol name
  • Any target project type: Supports all types of projects, mixed projects, and management of text files that are not programming-language specific projects
  • Standalone output: Generated templates have zero runtime dependencies
  • Zero configuration: Works out of the box with sensible defaults
  • Flexible ignore patterns: Support for .catdoublerignore files similar to .gitignore
  • Automatic text/binary file detection: Automatically analyzes file contents to identify text files

Installation

Install as a global command:

npm install -g cat-doubler

Or, if you use it in your local project:

npm install -D cat-doubler

Examples

Example of converting a React component project in the current directory.

This project is called MyAwesomePage and uses symbol names like MyAwesomePage and my-awesome-page internally. You can convert this symbol name into a scaffolder that end users can re-specify:

cat-doubler . MyAwesomePage

This will generate a scaffolder project like the following:

scaffolder/
├── scaffolder.js    # Standalone CLI
├── package.json     # Minimal package configuration
├── README.md        # Usage instructions
└── templates/       # Project containing placeholders
    ├── src/
    │   ├── __pascal1__.js
    │   │        :
    │   │        :
    │   └── index.html
    └── package.json

See more features in repository documentation


License

Under MIT.