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

@temikus/flurry

v0.2.0

Published

Generate unique snowflake SVGs from cryptographic strings — like SSH randomart, but prettier

Readme

Flurry

CI npm License

Generate unique snowflake SVGs from cryptographic strings — like SSH randomart, but prettier.

Spot similar keys at a glance. Every input produces a deterministic, visually distinct snowflake with true 6-fold symmetry (D6 dihedral group), just like real ice crystals. Same input always gives the same snowflake. Different inputs give different snowflakes. Display them next to SSH fingerprints, wallet addresses, or API keys so users can quickly tell them apart without comparing long hex strings character by character.

Live Demo

Install

npm install @temikus/flurry

Usage

import { generateSnowflake, generateSnowflakeSync } from "@temikus/flurry";

// Async (uses Web Crypto API)
const svg = await generateSnowflake("SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8");

// Sync (bundled SHA-256, no Web Crypto dependency)
const svg = generateSnowflakeSync("SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8");

// With options
const svg = await generateSnowflake(input, {
  size: 400,                       // viewBox size (default: 400)
  color: "#a8d8ea",                // branch color (default: ice blue)
  backgroundColor: "transparent",  // default: transparent
  strokeOnly: false,               // outline mode (default: false)
});

Browser (UMD)

<script src="https://unpkg.com/@temikus/flurry"></script>
<script>
  Flurry.generateSnowflakeSync("my-key", { size: 200 });
</script>

Embed in a page

const container = document.getElementById("avatar");
container.innerHTML = await generateSnowflake(user.publicKey);

How it works

  1. Hash the input string with SHA-256 (32 bytes)
  2. Parse the bytes into snowflake growth parameters (arm length, curvature, branch count/angle/length, tip decorations, center pattern)
  3. Generate geometry for a single 30-degree half-sector
  4. Mirror for bilateral symmetry, then rotate 6 times for full D6 dihedral symmetry
  5. Render as an SVG string with <defs>/<use> for efficiency

Development

Requires Node.js 20+ and just.

just install    # Install dependencies
just dev        # Run demo dev server
just test       # Run tests
just build      # Build library
just build-demo # Build demo site
just lint       # Type-check

License

Apache 2.0