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

dataform-doc-generator

v0.1.0

Published

Generate interactive, credential-free documentation for Dataform projects (dependency graph, column-aware search, assertion linkage).

Readme

dataform-doc-generator

Interactive, credential-free documentation for Dataform projects. Compiles your project with dataform compile --json (offline) and renders a static site with a dependency graph, column-aware search, and assertion linkage.

Published to npm as dataform-doc-generator. If you fork it, change name+bin in package.json and the program name in src/cli/index.ts.

Improvements over the original dataform-docs

  • Column-aware search — the search box and list filter match column names and column descriptions, not just model name/description/tags (src/utils/search.ts).
  • Assertion linkage — each model's detail panel lists the assertions that test it, and assertions link back to what they assert against (src/generator/manifest-builder.ts, ModelDetails.tsx).
  • Directional lineage isolation — selecting a model shows only its real lineage (transitive upstream dependencies + downstream dependents), not the whole connected blob. Siblings that merely share an ancestor are excluded (lineageSet in DependencyGraph.tsx).
  • Zoom-to-fit on select — selecting a model animates a zoom onto its lineage so it's easy to read; the "Show all" view fits the whole graph without over-zooming.
  • Collapsible model list — the left list groups by type with collapsible sections and count badges. Assertions, declarations and operations start collapsed; they auto-expand while a search or filter is active (ModelList.tsx).

Layout

src/                 CLI + parser (TypeScript → dist/)
  cli/               index (commander), generate, serve
  parser/            dataform-compiler (compile --json), dependency-graph
  generator/         manifest-builder (+ assertion reverse-map)
  types/
site-generator/      React + Vite SPA (built once, copied into src/site at build time)
scripts/copy-site.js copies the built SPA into src/site so it ships in the package

Develop

npm install
npm run build:cli          # compile the CLI to dist/
cd site-generator && npm install && npm run dev   # hot-reload the SPA against sample JSON

Build & publish

npm install
npm run build              # tsc + build SPA + copy SPA into src/site
npm publish --access public

Use (against any Dataform project)

The generator shells out to a dataform binary, so the Dataform CLI must be on your PATH:

npm install -g @dataform/cli@^3

Then, from your project (before publishing, run the local build with node …/dist/cli/index.js):

cd /path/to/dataform-project
dataform compile --json | head    # smoke test: should print JSON, not an error
npx dataform-doc-generator generate --project . --output ./site
npx dataform-doc-generator serve --dir ./site --open

Dataform 3.x note

3.x projects use workflow_settings.yaml and have no package.json — that's expected, don't run npm install in them. If a package-lock.json is present, dataform compile fails with '…/package-lock.json' unexpected; remove it and try again; delete it and recompile.

For GitHub Pages, generate with the repo subpath:

npx dataform-doc-generator generate -o ./site -b "/your-repo-name/"

Notes

  • Compile-only: column types are not available offline, so they show as unknown. Descriptions, tags, partition/cluster, dependencies and assertions are all real.
  • CI needs no secrets. See the companion docs.yml workflow.