{"adoption": {"forks": 4796, "observed_at": "2026-08-28T04:11:56.669662+00:00", "stars": 31289}, "canonical_url": "https://ross.abutalabs.com/products/jspdf", "card": {"archived": false, "artifact_type": "library", "description": "Client-side JavaScript PDF generation for everyone.", "domain": ["pdf", "web-development", "frontend", "files"], "enriched": true, "function": ["pdf", "developer-tools"], "health_score": 96, "homepage": "https://parall.ax/products/jspdf", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["parallax/jsPDF"], "name": "parallax/jsPDF", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-09T08:59:34+00:00", "repo": "parallax/jsPDF", "stars": 31289, "tags": ["pdf-generation", "client-side", "javascript", "document-creation", "html5", "nodejs"], "topics": ["hacktoberfest"], "urls": [], "use_cases": ["generate pdf invoices in the browser", "create pdf reports from javascript", "export html page data to pdf client-side", "generate downloadable pdf without a server", "create pdf documents in node.js", "add pdf export to a web app"], "what_it_is": "jsPDF is a JavaScript library for generating PDF documents entirely client-side in the browser, with Node.js support as well. It lets developers create PDFs programmatically with text, images, and vector graphics without a server.", "when_to_avoid": ["you need to parse or extract text from existing PDFs rather than create them", "you need pixel-perfect conversion of complex HTML/CSS layouts to PDF", "you are generating PDFs in a non-JavaScript stack"], "when_to_choose": ["you need to generate PDFs entirely in the browser without server round-trips", "you want a mature, widely used MIT-licensed JavaScript PDF library", "you need both browser and Node.js PDF generation from one API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jspdf", "repo": "parallax/jsPDF", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "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:11:56.669662+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:56.669662+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:52:18.440126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "81f56e35de3231ce56d22b21cdea1ce252b6bac73d3e9877d908b2bde569fd64", "fetched_at": "2026-08-28T04:11:56.669662+00:00", "kind": "readme", "missing": false, "url": "https://github.com/parallax/jsPDF"}, {"content_hash": "82dac0c7db365cab08879cb6bd495674df5897ee088e31ffd29e03f6f7867de3", "fetched_at": "2026-08-29T07:49:47.148700+00:00", "kind": "homepage", "missing": false, "url": "https://parall.ax/products/jspdf"}, {"content_hash": "70e72364da8ea0cff7233c511e029c3847522fec3fd328dec5de3fc328a6bc6b", "fetched_at": "2026-08-29T07:49:47.152642+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about"}, {"content_hash": "271ad4d80756399e7046c11d442cb98cff7ced5c9660ddabb05b1ef3436a5ee0", "fetched_at": "2026-08-29T07:49:47.154913+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/culture"}, {"content_hash": "3aec9006cbefb7258916aff1f0a0a84b7bccf7a62fd78654eabd7b731457910a", "fetched_at": "2026-08-29T07:49:47.157141+00:00", "kind": "site_page", "missing": false, "url": "https://parall.ax/about/leadership"}, {"content_hash": "b64ff0c8028134a5ee87a18ca380270deb58d3aa8ed7297f6acf17de4f7ac0fe", "fetched_at": "2026-08-29T07:49:47.159019+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/jspdf"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 75}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 6114, "days_push": 24, "days_rel": 169, "gap_med": 29, "n_releases_24m": 10}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}