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

steptacular

v0.0.12

Published

Steptacular is a gradual automation tool built with TypeScript.

Readme

Description

Steptacular is a gradual automation tool built with TypeScript.

The Problem

All jobs have manual processes that are hard to automate. Usually for one or both of these reasons:

  1. Some steps may require human input.
  2. The cost of automating some part of the process might be so high it does not make sense.

Usually when automation seems hard we settle for documenting the steps in some sort of doc system (Confluence, Google Docs, Notion, Slack 😉 etc) and running them manually each time.

Some issues with this approach:

  • It’s easy to skip over steps accidentally in a document.
  • Documents are static. Swapping out the relevant info each time requires error prone copy and pasting.
  • If you automate some steps then you have to context switch between a document and a collection of automation scripts.
  • Documents can be too easily changed. Important steps can be accidentally lost forever.

The Solution

Gradual automation works by defining a process as a series of steps in code. Each step includes helpful information to get the job done. Steps can be stepped through in order via helpful interactive prompts in the command line.

Over time the steps where automation makes sense can be automated. Hard to automate steps can remain manual. The code can live in source control just like your other projects.

gif

Installation

npm install steptacular

Features

  • Pretty display in terminal
  • Dry run mode
  • Library of helpful utilities

Basic Usage

Simplifed example for onboarding a new developer into the team.

import { run } from 'steptacular';

run([
    {
        name: 'Give access to Github',
        run: ({utils: { prompt }, data, next}) => {
            const email = prompt('Enter new employee email address then hit enter: ');
            console.log(`Go to Github and add new user ${email}`);
            data.setData({email});
            prompt('Press enter to continue: ');
            next();
        }
    },
    {
        name: 'Give access to Slack',
        run: ({data, next}) => {
            console.log(`Go to Slack and add new user ${data.value.email}`);
            prompt('Press enter to continue: ');
            next();
        }
    },
    {
        name: 'Setup kickoff meetings',
        run: ({data, next}) => {
            console.log('Set up manager 1-1 meeting');
            console.log('Set up meeting with tech lead. This is to go through codebase.');
            console.log('Setup meeting with office manage');
            prompt('Press enter to finish: ');
            next();
        }
    }
]);

Samples

See more advanced uses of Steptacular in the samples directory.

  • Basic sample that uses both manual and automated steps

  • How I publish this library using Steptacular

  • Using Bash commands

API Reference