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

@griddo/cli

v0.5.16

Published

CLI tool for scaffolding Griddo components, modules and templates with TypeScript support

Readme

Griddo CLI

CLI tool for scaffolding Griddo components, modules and templates for the Typescript instances with AutoTypes support.

Installation

Don't install it, use with npx:

npx @griddo/cli@latest <command>

Quick Start

Initialize Griddo CLI in your project:

npx @griddo/cli@latest init

Create your first component:

Griddo CLI will use it's internal templates in order to create the file content. Go to Using custom templates to learn how to use your custom templates.

@griddo/cli@latest create-component MyButton

Using custom templates

You can use your own templates and tell Griddo CLI to use them when creating elements. You just need to specify the path to the directory where the template is located in the --template argument. In the next section we'll see how to create a custom template.

@griddo/cli@latest create-module MyButton --template ./my-templates/basic-component

Creating our first template

A template is a folder with the name we want that contains two folders _schema and _ui which, as you can suspect, is where the template files for schemas and for the React part will be housed.

Files that we want to be processed by Griddo CLI must have a .tpl extension, with @.tpl files being the main file for the schema and for React. Those that don't have this extension will simply be copied as is.

my-templates/
└─ basic-module/
   ├─ _schema/
   │  └─ @.tpl
   └─ _ui/
      ├─ @.tpl
      ├─ stories.tsx.tpl
      └─ styles.module.css (No .tpl extension: This file will not be processed, it will be copied as is)

Tags

Within the file content you can use certain tags that will allow you to inject the necessary data when creating the Griddo element.

This is the list of available tags

  • {{@KIND}} -> Will be replaced by component, module or template depending on the command used.
  • {{@NAME}} -> Will be replaced by the name of the created element, for example: MyButton
  • {{@DISPLAY_NAME}} -> Will be replaced by the display-name specified in the command, if no display-name is specified this will be the name
  • {{@AUTOTYPES_IMPORT}} -> Will be replaced by the alias we have configured for autotypes in the configuration file.

A basic example for a module file could be:

import type { {{@NAME}}Props } from "{{@AUTOTYPES_IMPORT}}";

const {{@NAME}} = (props: {{@NAME}}Props) => {
  return <p>{props.title}</p>;
};

export default {{@NAME}};

If the command is used

npx @griddo/cli create-module BasicContent

The file will look like this

import type { BasicContentProps } from "@/autotypes";

const BasicContent = (props: BasicContentProps) => {
	return <p>{props.title}</p>;
};

export default BasicContent;