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

PL8

v0.3.4

Published

The most simple boilerplate generator in the universe

Readme

PL8

PL8

The most simple boilerplate generator in the universe.

Table of Contents

About

PL8 is a boilerplate generator focusing on simplicity, ease of use and extensibility. It doesn’t care what language or file type you want to use. Java? CSS? Python? No problem! Need to create some boilerplates? PL8 makes it easy!

  • PL8 doesn't care about your tech. Java? React? SASS? It won't argue with you.
  • PL8 doesn't care if you want to use Yeoman or another generator. It will still help out.
  • PL8 uses a simple JSON configuration file, don't waste time with building custom generators.

Installation

  1. Install npm package globally: npm i -g pl8
  2. Place a pl8rc.json config file in root of project directory.
  3. Run plt or pl8 from project root to open prompt for boilerplate generation.

Demo

Preview

Documentation

Title: String

Title of PL8 configuration, acts as the initial prompt header.

{
  title: 'Boilerplates:'
}

Directory: String

Output directory for new files.

{
  directory: 'output/files'
}

Vars: Array

Static variables to replace in boilerplate templates for new files.

{
  vars: [{
    ref: 'name', // pl8 variable for replacement ... {pl8.name} = HelloWorld
    content: 'HelloWorld',
    // accepts tpl: 'path/to/tpl.ext' ... path to local template
    // accepts git: 'github.resource.url' ... url to github resource as template
  }]
}

Inputs: Array

Allow user to input custom variables for boilerplate templates.

{
  inputs: [{
    title: 'What is the component name?', // prompt message to show user
    ref: 'component', // pl8 variable for replacement ... {pl8.component} = User input value
  }]
}

Files: Array

Files to output from boilerplate templates.

{
  files: [{
    name: 'index.js', // creates index.js file
    content: 'export default {}'
  }, {
    name: '{pl8.name}.js', // pl8 variables will be replaced in all file names and directory paths
    tpl: 'templates/tpl.js', // accepts local template files
  }, {
    name: '{pl8.name}-e2e.js',
    git: 'https://github.com/pl8/pl8/blob/master/examples/templates/react-e2e.js', // accepts github resource urls for templates
  }]
}

Choices: Array

Allow users to choose between multiple boilerplate configurations.

// Object example
{
  choices: [{
    title: 'Javascript Component',
    vars: [{
      ref: 'name', // pl8 variable for replacement ... {pl8.name} = HelloWorld
      content: 'HelloWorld',
      // accepts tpl: 'path/to/tpl.ext' ... path to local template
      // accepts git: 'github.resource.url' ... url to github resource as template
    }],
    inputs: [{
      title: 'What is the component name?', // prompt message to show user
      ref: 'component', // pl8 variable for replacement ... {pl8.component} = User input value
    }],
    files: [{
      name: 'index.js', // creates index.js file
      content: 'export default {}'
    }, {
      name: '{pl8.name}.js', // pl8 variables will be replaced in all file names and directory paths
      tpl: 'templates/tpl.js', // accepts local template files
    }, {
      name: '{pl8.name}-e2e.js',
      git: 'https://github.com/pl8/pl8/blob/master/examples/templates/react-e2e.js', // accepts github resource urls for templates
    }]
  }]
}
// String example
{
  choices: [
    'path/to/config.json',
    'path/to/different/config.json',
  ],
}

Example Config

All paths and files correspond to the examples/ directory.

pl8rc.json config

// Allow user to choose config option
{
  title: 'Boilerplates:',
  directory: 'output/files', // outputs all files to this directory
  choices: [
    // string example
    'examples/configs/react-component.json',

    // object example
    {
      title: 'Javascript Component',
      vars: [{
        ref: 'name', // pl8 variable for replacement ... {pl8.name} = HelloWorld
        content: 'HelloWorld',
        // accepts tpl: 'path/to/tpl.ext' ... path to local template
        // accepts git: 'github.resource.url' ... url to github resource as template
      }],
      inputs: [{
        title: 'What is the component name?', // prompt message to show user
        ref: 'component', // pl8 variable for replacement ... {pl8.component} = User input value
      }],
      files: [{
        name: 'index.js', // creates index.js file
        content: 'export default {}'
      }, {
        name: '{pl8.name}.js', // pl8 variables will be replaced in all file names and directory paths
        tpl: 'templates/tpl.js', // accepts local template files
      }, {
        name: '{pl8.name}-e2e.js',
        git: 'https://github.com/pl8/pl8/blob/master/examples/templates/react-e2e.js', // accepts github resource urls for templates
      }]
    }
  ]
}
// Or create some files right away
{
  directory: 'output/files',
  files: [{
    name: 'README.md', // creates README.md file
    content: '# README',
  }],
}