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

@hero-design/snowflake-guard

v1.4.11

Published

A hero-design bot detecting snowflake usage

Readme

@hero-design/snowflake-guard

Overview

A GitHub App built with Probot that analyzes PR changes and reports snowflake usage of Hero Design components. The bot detects when components are customized using inline styles, styled-components, sx props, or className attributes that may violate design system guidelines.

Prerequisites

Development

Setup

  1. Copy .env.example to .env and ask Andromeda team for variable details.
cp .env.example .env

For React Native projects, include your repo name in the MOBILE_REPO_NAMES env variable.

  1. Set up internal-tool-integrations service for the bot to store report.
  • Replace DB_HOST with the host of the internal-tool-integrations service.
  • Use the same SNOWFLAKE_GUARD_SECRET as the one in the internal-tool-integrations service.

In case you don't want to store snowflake report, comment out the saving report section in src/index.ts.

  1. Install snowflake-guard[Dev] app to a repository that you wish to run the app on.

  2. Start internal-tool-integrations service.

  3. Start the bot.

# Install dependencies
yarn install

# Run the bot
yarn start
  1. Open or update a pull request to trigger webhook events.

Scripts

  • yarn build - Compile TypeScript to JavaScript
  • yarn start - Build and run the bot with Probot
  • yarn test - Run tests with Jest
  • yarn lint - Run ESLint
  • yarn type-check - Type check without emitting files
  • yarn deploy - Deploy to Netlify
  • yarn publish:npm - Publish package to npm

Project Structure

apps/snowflake-guard/
├── src/
│   ├── index.ts              # Main entry point, Probot app setup
│   ├── parseSource.ts        # Web source code parser
│   ├── parseMobileSource.ts  # Mobile source code parser
│   ├── parsers/              # TypeScript and Flow parsers
│   ├── reports/              # Snowflake detection logic
│   │   ├── constants.ts      # Report constants and configurations
│   │   ├── mobile/           # Mobile-specific report generators
│   │   └── ...               # Web report generators
│   ├── graphql/              # GraphQL queries for report storage
│   └── utils/                # Utility functions
├── netlify/                  # Netlify serverless functions
├── lib/                      # Compiled JavaScript output
└── package.json

Deployment

The app is deployed to Netlify as a serverless function. Deployment is automated via GitHub Actions when a new version is published.

To deploy manually:

yarn deploy

This requires the NETLIFY_AUTH_TOKEN environment variable to be set.

Contributing

This bot does not support hot-reload yet, please restart the app once you make any changes to the code.

To contribute:

  1. Make changes to the source code in src/
  2. Test locally with yarn start
  3. Ensure tests pass with yarn test
  4. Submit a pull request

Note: The bot analyzes PR diffs and comments on potential snowflake usage violations. Approved patterns can be marked with special comments like @snowflake-guard/approved-inline-style or @snowflake-guard/approved-classname.