{"adoption": {"forks": 41, "observed_at": "2026-08-28T04:04:51.127861+00:00", "stars": 1482}, "canonical_url": "https://ross.abutalabs.com/products/modern-guide-to-packaging-js-library", "card": {"archived": false, "artifact_type": "learning-resource", "description": "A guide to help ensure your JavaScript library is the most compatible, fast, and efficient library you can make. ", "domain": ["web-development", "frontend", "developer-tools", "documentation", "tutorials"], "enriched": true, "function": ["developer-tools", "build-tool", "package-manager", "documentation"], "health_score": 20, "homepage": null, "language": null, "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["frehner/modern-guide-to-packaging-js-library"], "name": "frehner/modern-guide-to-packaging-js-library", "platform": ["cross-platform"], "pushed_at": "2024-01-02T17:01:07+00:00", "repo": "frehner/modern-guide-to-packaging-js-library", "stars": 1482, "tags": ["javascript-library-packaging", "npm", "esm", "cjs", "umd", "package-", "guide", "best-practices", "nodejs", "web-server"], "topics": ["javascript", "javascript-library", "npm"], "urls": [], "use_cases": ["how to package a javascript library for npm", "should my library output esm or cjs", "configure package. exports for a js library", "make my npm library tree-shakeable", "set up typescript types correctly for a library", "what module formats should a js library ship", "best practices for publishing an npm package"], "what_it_is": "A community guide with at-a-glance best-practice suggestions for packaging JavaScript libraries for npm, covering module formats (esm, cjs, umd), package. settings, and TypeScript types. It is bundler-agnostic and aimed at library authors rather than application developers.", "when_to_avoid": ["you are packaging an application rather than a library", "you need step-by-step configuration for a specific bundler like webpack, rollup, or vite", "you need a definitive standard rather than suggestions you may deviate from"], "when_to_choose": ["you are authoring a JavaScript/TypeScript library to publish on npm", "you want bundler-agnostic packaging advice with explanations of the reasoning", "you need to decide between esm, cjs, and umd outputs", "you want to validate package. and type settings with tools like publint and arethetypeswrong"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/modern-guide-to-packaging-js-library", "repo": "frehner/modern-guide-to-packaging-js-library", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:51.127861+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:07.224137+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1de5c3a9a7149bf768244563fe17ec8bf444699be58ef2cf6bd19eb9bd8007e1", "fetched_at": "2026-08-28T04:04:51.127861+00:00", "kind": "readme", "missing": false, "url": "https://github.com/frehner/modern-guide-to-packaging-js-library"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1470, "days_push": 974, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}