npm Packages with the Best Health Scores (And Why)
·PkgPulse Team
TL;DR
The best-maintained npm packages share 4 properties: active releases, responsive maintainers, zero long-term security vulnerabilities, and growing (not just large) download counts. PkgPulse health scores weight these factors across maintenance, community, popularity, and security dimensions. The packages that consistently score 90+ aren't necessarily the most popular — they're the ones where maintainers are clearly invested and the community is engaged.
Key Takeaways
- Health score ≠ download count — many high-download packages score poorly (CRA: 102K stars, low health)
- Four dimensions: maintenance (40%), community (25%), popularity (20%), security (15%)
- Maintenance matters most — release cadence, issue response time, active contributors
- Growing velocity beats raw downloads — +15% MoM shows real adoption momentum
- The best packages often aren't the most famous — niche tools maintained by dedicated teams
What Makes a High Health Score
PkgPulse Health Score Components:
Maintenance (40%):
├── Release recency (last release date)
├── Release frequency (commits/releases per quarter)
├── Issue response time (average time to first response)
├── PR merge rate (% of PRs reviewed within 30 days)
└── Contributor count (bus factor — number of active contributors)
Community (25%):
├── Stars growth rate (not absolute count)
├── Documentation quality (README score, dedicated docs site)
├── Ecosystem integrations (plugins, adapters, compatible tools)
└── Discussion activity (GitHub Discussions, Discord)
Popularity (20%):
├── Weekly downloads (absolute)
├── Download velocity (week-over-week, month-over-month trend)
├── Usage in popular projects (detected via GitHub dependency graph)
└── npm dependent packages count
Security (15%):
├── Open vulnerability count (CVEs)
├── Time to patch CVEs (history)
├── Dependency vulnerability exposure
└── Provenance attestation (signed releases)
Score: 0-100. 90+ = excellent. 75+ = good. Below 60 = investigate before using.
Category: Build Tools (Highest Scores)
Vite — 97/100
# Why near-perfect:
# - Weekly releases or near-weekly
# - Active core team (Evan You + dedicated contributors)
# - Response time: issues triaged within 48h
# - Security: zero long-standing CVEs
# - Growth: +32% YoY, consistently upward curve
# - Ecosystem: 1000+ plugins, used in SvelteKit, Astro, Nuxt default
npm install -D vite
# 15M weekly downloads — every metric heading in the right direction
Vitest — 96/100
# Why excellent:
# - Part of Vite team — same release cadence
# - Fastest-growing test runner: +175% YoY
# - Issues closed same day (small focused team, high velocity)
# - Zero dependency vulnerabilities in core
# - TypeScript-first: no separate @types/ needed
npm install -D vitest
esbuild — 94/100
# Why excellent (despite rare releases):
# - "Intentionally stable" — feature-complete, not stagnant
# - Security: zero CVEs (Golang, not Node.js ecosystem risk)
# - Used internally by most bundlers: Vite, tsup, many more
# - Bug fixes shipped promptly
# - Maintained by one dedicated author (Evan Wallace) with clear roadmap
npm install -D esbuild
Category: Testing (Highest Scores)
Playwright — 95/100
# Why excellent:
# - Microsoft-backed: full-time team
# - Monthly releases, detailed changelogs
# - 25K+ GitHub issues closed, most within weeks
# - Shiplap documentation site updated with every release
# - Growing: +85% YoY as E2E testing becomes standard
# - Security: regularly audited by Microsoft security team
npm install -D @playwright/test
Testing Library — 93/100
# @testing-library/react — consistently excellent
# - Active core team, consistent releases
# - Philosophy-driven: tests that mirror user behavior
# - Zero major security issues in history
# - 5M+ weekly downloads and growing
# - The standard in React testing: shadcn/ui, create-t3-app all use it
npm install -D @testing-library/react @testing-library/user-event
Category: State Management (Highest Scores)
Zustand — 95/100
# Why excellent:
# - Tiny team with extremely high responsiveness
# - Releases monthly, never misses critical bugs
# - Zero runtime dependencies (not even React peer dep issues)
# - Bundle: 2KB gzipped
# - 8M weekly downloads, +25% YoY growth
# - Community: Pmndrs team transparent about roadmap
npm install zustand
Jotai — 93/100
# Same team as Zustand (Pmndrs / Daishi Kato)
# Same release discipline: monthly, responsive
# TypeScript-first design
# 3.5M weekly downloads, growing
npm install jotai
TanStack Query — 95/100
# TanStack: extremely high-quality maintenance culture
# - Tanner Linsley + full team, full-time open source
# - React Query v5 shipped with breaking changes but perfect migration guide
# - Issues: most critical ones addressed within 24-48h
# - 10M+ weekly downloads, industry standard for server state
# - Every major framework has an adapter
npm install @tanstack/react-query
Category: Validation (Highest Scores)
Zod — 94/100
# Why excellent:
# - Colin McDonnell maintaining consistently
# - v3 was stable for 2 years with steady improvements
# - 14M+ weekly downloads
# - Ecosystem: first-class support in tRPC, Conform, Drizzle, React Hook Form
# - Security: pure validation library, no network/IO risk
# - TypeScript inference is best-in-class
npm install zod
Valibot — 91/100
# New but impressive health from day 1:
# - Active development: weekly releases
# - Fabian Hiller (creator) very responsive to issues
# - Growing rapidly: +480% YoY
# - Tree-shakeable design = no dead code
# - API compatibility with Zod attracting migrations
npm install valibot
Category: Styling (Highest Scores)
Tailwind CSS — 96/100
# Why excellent:
# - Full-time team at Tailwind Labs
# - Tailwind v4 shipped with zero-config, Vite plugin
# - Issue response: within hours for bugs
# - 45M+ weekly downloads, dominant in its category
# - Actively supporting RSC, Astro, SvelteKit, all major frameworks
npm install -D tailwindcss
CSS Modules (built-in, no npm) — N/A
/* Built into Vite, Next.js, SvelteKit — no health score needed */
/* Zero external dependency = infinite health */
Category: Frameworks (Highest Scores)
Next.js — 95/100
# Vercel-backed: full-time team of 50+ engineers
# - Releases every 2-4 weeks
# - Issues triaged same day (high volume, but dedicated team)
# - Security: CVEs patched within 24-48h
# - 8M+ weekly downloads, growing
# - RSC implementation actively iterated
npm create next-app@latest
Hono — 95/100
# Small, focused, high-velocity:
# - Yusuke Wada + growing contributor base
# - Releases weekly
# - Issues: 24-48h response typical
# - Zero compromise on bundle size
# - Growing 195% YoY with clear roadmap
npm install hono
Fastify — 93/100
# Enterprise-grade maintenance:
# - OpenJS Foundation project (institutional backing)
# - LTS releases with defined support windows
# - Security team with formal disclosure process
# - Used in production by: nearForm, Tier, and dozens of enterprises
# - 4M+ weekly downloads, stable growth
npm install fastify
Category: ORMs (Highest Scores)
Drizzle ORM — 94/100
# Small team, exceptional responsiveness:
# - Andrew Sherman + team actively pushing weekly releases
# - Community: largest Discord of any new ORM (20K+ members)
# - Issues addressed quickly: avg response < 2 days
# - No legacy debt: built for TypeScript from day 1
# - Growing: +220% YoY
npm install drizzle-orm drizzle-kit
Prisma — 91/100
# Corporate-backed ORM:
# - Prisma team of 50+ engineers
# - Monthly major releases, weekly patches
# - Prisma 6: performance improvements addressing earlier criticisms
# - 3M+ weekly downloads
# - Docs are best-in-class in any ORM
npm install prisma @prisma/client
The Common Thread
What the highest-scoring packages share:
1. Dedicated maintainers with clear ownership
→ Not committee-by-committee; one or a few people who care deeply
2. Release discipline
→ Regular releases on a predictable schedule
→ Not "when it's done" (leads to long gaps)
3. Issue triage culture
→ First response within 48-72 hours, even if it's "we'll look at this"
→ Bugs triaged by severity, P0 patched in days not months
4. Zero-security-debt philosophy
→ CVEs addressed immediately, not deferred
→ Proactive dependency updates
5. Growing community, not just large community
→ Discord/GitHub Discussions active
→ External contributors welcomed with good PR reviews
6. TypeScript-first or excellent TypeScript support
→ Types ship in the package, not in @types/
→ Types are accurate and well-tested
The packages that score below 70:
→ Single maintainer who's moved on
→ Open CVEs sitting for months
→ Issues with zero response for weeks
→ Dependency on deprecated packages
→ Last release 12+ months ago with activity showing as "maintenance"
See health scores for any npm package at PkgPulse.
See the live comparison
View zustand vs. jotai on PkgPulse →