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

podmonkey

v0.3.1

Published

Paste Kubernetes YAML. Compare cloud bills across AWS, GCP, Azure, and Hetzner.

Readme

Podmonkey 🐒

Paste Kubernetes YAML. Compare cloud bills. Spot waste before you deploy.

Podmonkey is an open-source, manifest-first Kubernetes cost estimator. It parses your YAML and produces planning-grade monthly cost ranges across AWS EKS, Google GKE, Azure AKS, and Hetzner — no cluster agent, no login, no enterprise sales call.

Planning estimates only — not an invoice. See docs/CALCULATION_PLAN.md for how we make numbers decision-grade, and docs/CURRENT_STATE.md for what the code does today.

Quick links

| Doc | Description | |-----|-------------| | Current state | Audit: claims vs code, gaps, extension points | | Calculation plan | Dual models, rate derivation, validation | | Product spec | Vision, scope, roadmap, warnings | | Methodology | Formulas, price sheet schema | | Competitors | Side-by-side vs Kubecost, ReleaseRun, Optiqor, etc. | | GitHub Action | PR cost comments, diff, policy gates in CI | | Roadmap | Tier 2–4 feature plan | | Pricing sources | Verified list prices and benchmarks |

Try it

Live demo → — paste YAML, compare AWS / GCP / Azure / Hetzner in one view. Load examples from the dropdown (nginx, Postgres HA, SaaS stack, monitoring, and more in examples/).

Or run locally:

cd apps/web
npm install
npm run dev
# → http://localhost:3002

Deploy your own copy: Vercel (set root to apps/web) or enable GitHub Pages in repo settings (workflow .github/workflows/deploy-web.yml publishes on push to main).

Add to your repo

Copy .github/workflows/podmonkey-estimate.example.yml to .github/workflows/podmonkey.yml and point path at your manifests:

- uses: MarketMadi/[email protected]
  with:
    path: ./k8s
    base-path: ./k8s   # optional: compare vs main branch copy for PR diff
    max-monthly-usd: '500'
    min-confidence: '60'

Podmonkey posts (or updates) a PR comment with per-provider monthly ranges and optional cost diff. See docs/GITHUB_ACTION.md.

Install (CLI)

npm install -g podmonkey
# or without installing:
npx podmonkey estimate -f examples/nginx-deployment.yaml

Helm charts:

podmonkey estimate --helm-chart ./chart --helm-values values.yaml
helm template myapp ./chart | podmonkey estimate -f -

PR cost diff:

podmonkey estimate -f k8s/ --base k8s.main/ --markdown

How it works

YAML manifests
    → parse (Deployment, StatefulSet, PVC, Service…)
    → aggregate CPU/RAM/storage/LB counts
    → derive rates from reference_instance (OpenCost Appendix A)
    → compute marginal .. node-floor range per provider
    → compare providers + confidence score + warnings

Compute (two models, shown as a range):

Model A (marginal):  Σ(requests) × 730h × derived $/vcpu-hr and $/gib-hr
Model B (node floor): cheapest catalog VM that fits workload × hourly × 730h

Plus control plane, PVC storage ($/GiB-month), and LoadBalancer flat fees per provider.

Rates are derived at runtime from each sheet's reference_instance — not the legacy rates fields in JSON.

Example (nginx on AWS EKS): ~$103/mo without a LoadBalancer; ~$121/mo with one (on-demand, planning estimate).

Project structure

podmonkey/
├── docs/           # Product, methodology, audit
├── pricing/        # Versioned provider price sheets (JSON)
├── src/
│   ├── cli/        # CLI entry (estimate command)
│   ├── parser/     # YAML → normalized workloads
│   ├── pricing/    # Rate derivation, node floor, confidence
│   ├── estimator/  # Cost engine
│   └── warnings/   # Policy rules
└── apps/web/       # Next.js demo UI

Development

# Root: shared engine tests (41 tests)
npm install
npm test
npm run build

# CLI (also: npm install -g podmonkey)
npm run podmonkey -- estimate -f examples/nginx-deployment.yaml
npm run podmonkey -- estimate -f k8s/ --base k8s.main/ --max-monthly-increase-usd 50
npx podmonkey estimate -f examples/nginx-deployment.yaml
kubectl get deploy,svc -o yaml | npx podmonkey estimate -f - --json

# GitHub Action (PR comments + policy gates) — see docs/GITHUB_ACTION.md
# uses: MarketMadi/[email protected]

# Web app
cd apps/web && npm install && npm run dev

Pricing data

Price sheets live in pricing/ with as_of dates, reference_instance, and source URLs:

  • pricing/aws-us-east-1.json
  • pricing/gcp-us-central1.json
  • pricing/azure-eastus.json
  • pricing/hetzner-fsn1.json (compute_model: node_only)

Rate derivation: docs/CALCULATION_PLAN.md. CI asserts every sheet normalizes to its reference VM hourly price.

Differentiation

| vs Kubecost | vs ReleaseRun | vs DeepCost | |-------------|---------------|-------------| | No cluster install | Prices your YAML, not sliders | Open source, not SaaS funnel | | Multi-cloud compare in one view | Per-workload breakdown | Transparent methodology | | Honest range (marginal .. node floor) | — | — |

License

MIT — see LICENSE.

Disclaimer

Podmonkey is not affiliated with AWS, Google, Microsoft, Hetzner, Kubecost, or OpenCost. Estimates use public on-demand pricing and resource requests from your manifests. Excludes egress, NAT, Spot/reserved discounts, and idle node capacity. Actual bills depend on usage, discounts, networking, and bin-packing.