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

pristine-charts

v0.1.4

Published

`pristine-charts` gives you clean, minimal statistical charts with a sensible structure behind them.

Readme

pristine-charts

pristine-charts gives you clean, minimal statistical charts with a sensible structure behind them.

What’s in the repo

  • A public npm package for React consumers
  • Deep import paths for each chart
  • A Vite demo app for local development
  • Vitest coverage for chart rendering and domain logic
  • TypeScript declarations in the published package

Supported charts

  • Area chart
  • Bar chart
  • Box plot
  • Bullet chart
  • Histogram chart
  • KPI card
  • Line chart
  • Pie / donut chart
  • Progress bar
  • Ranked list
  • Scatter plot
  • Sparkline

Package shape

  • ESM and CJS builds are published from dist/
  • Type declarations ship alongside the runtime bundles
  • react and react-dom are peer dependencies
  • sideEffects: false helps bundlers drop unused chart entry points
  • Each chart can be imported from the root package or from its own subpath

Install

pnpm install

Run locally

pnpm dev

Scripts

pnpm lint
pnpm typecheck
pnpm test
pnpm build:lib
pnpm build:site
pnpm build

Library usage

Use the root export when convenience matters, or a deep import when you want the smallest bundle.

import { BarChart } from 'pristine-charts'

export function Example() {
  return (
    <BarChart
      data={[
        { category: 'North', value: 32 },
        { category: 'South', value: -14 },
      ]}
    />
  )
}
import { BarChart } from 'pristine-charts/bar-chart'
import { HistogramChart } from 'pristine-charts/histogram-chart'
import { KPICard } from 'pristine-charts/kpi-card'
import { LineChart } from 'pristine-charts/line-chart'
import { AreaChart } from 'pristine-charts/area-chart'
import { ScatterPlot } from 'pristine-charts/scatter-plot'
import { Sparkline } from 'pristine-charts/sparkline'

Public API

Chart components

These are the primary components intended for direct use:

  • AreaChart
  • BarChart
  • BoxPlot
  • BulletChart
  • HistogramChart
  • KPICard
  • LineChart
  • PieDonutChart
  • ProgressBar
  • RankedList
  • ScatterPlot
  • Sparkline

Helpers and types

The root package also exports chart-specific compute, validate, format, and type helpers for people who want to work with the domain layer rather than the components themselves.

Internal building blocks

Folders like chart-error, demo, icons, shared, and the per-chart components/ directories are part of the codebase, but they are implementation details rather than the main public surface.

Build outputs

  • pnpm build:lib writes the npm package artifacts to dist/
  • pnpm build:site writes the demo site to site-dist/
  • pnpm build runs both

Publishing

  • The GitHub Actions workflow in .github/workflows/release.yml deploys the site from main
  • The same workflow publishes to npm from v* tags
  • npm publishing expects an NPM_TOKEN secret in GitHub

Project structure

src/
  area-chart/        # area chart component, domain, and types
  bar-chart/         # bar chart component, domain, and types
  box-plot/          # box plot component, domain, and types
  bullet-chart/      # bullet chart component, domain, and types
  chart-error/       # reusable chart error component
  histogram-chart/   # histogram component, domain, and types
  kpi-card/          # KPI card component, domain, and types
  line-chart/        # line chart component, domain, and types
  pie-donut-chart/   # pie and donut chart component, domain, and types
  progress-bar/      # progress bar component, domain, and types
  ranked-list/       # ranked list component, domain, and types
  scatter-plot/      # scatter plot component, domain, and types
  sparkline/         # sparkline component, domain, and types
  shared/            # reusable helpers
  styles/            # demo styling
  demo/              # demo-page components
  App.tsx            # demo app shell
  main.tsx           # demo app entry point

Notes

  • The package is meant to be used as a library, not as a single bundled app
  • The demo site has its own build output so it can be deployed separately without touching the npm package