{"adoption": {"forks": 509, "observed_at": "2026-08-28T04:08:59.800154+00:00", "stars": 4788}, "canonical_url": "https://ross.abutalabs.com/products/pdfme", "card": {"archived": false, "artifact_type": "library", "description": "Open-source PDF generation library built with TypeScript and React. Features a WYSIWYG template designer, PDF viewer, and powerful generation capabilities. Create custom PDFs effortlessly in both browser and Node.js environments.", "domain": ["pdf", "web-development", "frontend", "developer-tools"], "enriched": true, "function": ["pdf", "templating", "ui-components", "plugin-system"], "health_score": 95, "homepage": "http://pdfme.com/", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["pdfme/pdfme"], "name": "pdfme/pdfme", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-01T15:18:31+00:00", "repo": "pdfme/pdfme", "stars": 4788, "tags": ["pdf-generation", "wysiwyg-designer", "pdf-viewer", "json-templates", "react", "pdf-lib", "nodejs", "typescript"], "topics": ["pdf", "pdf-generation", "pdf-designer", "pdf-viewer", "typescript", "react", "pdf-generator", "pdf-lib", "pdf-library"], "urls": [], "use_cases": ["generate pdfs from templates in nodejs", "embed a pdf template designer in my web app", "create designed pdf documents with minimal code", "generate invoices or certificates from json data", "let users fill pdf forms in the browser", "batch generate large numbers of pdfs fast", "view and preview pdf templates in a web app"], "what_it_is": "pdfme is an open-source TypeScript PDF generation library with a React-based WYSIWYG template designer, form, and viewer. It uses JSON templates to generate PDFs quickly in both browser and Node.js environments.", "when_to_avoid": ["you need to parse or extract text from existing PDFs", "you need complex PDF manipulation like merging, signing, or editing arbitrary PDFs", "you need a full standalone desktop PDF editor"], "when_to_choose": ["you need template-driven PDF generation in browser or Node.js", "you want a WYSIWYG designer or form UI embeddable in your app", "you need high-performance bulk PDF generation", "you want CJK/multi-font support and JSON-based templates"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pdfme", "repo": "pdfme/pdfme", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "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:08:59.800154+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:59.800154+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:18:42.014665+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1471e0f67a5f22b2fa087847a8cc9f19fe3bcebe4b24b8bd37a2c6e36e695ccb", "fetched_at": "2026-08-28T04:08:59.800154+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pdfme/pdfme"}, {"content_hash": "4d8ae58d3b7eaadc543ac88574e26cd141c192aff1476fcb8f7bede134f3c7d3", "fetched_at": "2026-08-29T09:02:09.574874+00:00", "kind": "homepage", "missing": false, "url": "http://pdfme.com/"}, {"content_hash": "4a09b9836b46ed19343163ab21f34fe47302c384e65d89b3f2514bcdf7aa0aa2", "fetched_at": "2026-08-29T09:02:09.584187+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/getting-started"}, {"content_hash": "aabaf00ed68981ad6cce245947e7f3b0be35a464c20abccffe98288474828756", "fetched_at": "2026-08-29T09:02:09.586589+00:00", "kind": "site_page", "missing": false, "url": "http://pdfme.com/docs/supported-features"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 77}, "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": 1837, "days_push": 32, "days_rel": 152, "gap_med": 28, "n_releases_24m": 8}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}