{"adoption": {"forks": 66, "observed_at": "2026-08-28T04:07:28.144959+00:00", "stars": 2886}, "canonical_url": "https://ross.abutalabs.com/products/takumi", "card": {"archived": false, "artifact_type": "library", "description": "Render OG images and paged PDFs from JSX, HTML, and CSS. No headless browser. Runs on Node.js, Cloudflare Workers, browsers, and Rust.", "domain": ["web-development", "frontend", "pdf", "media"], "enriched": true, "function": ["image-processing", "pdf", "templating", "wasm", "graphics"], "health_score": 100, "homepage": "https://takumi.kane.tw", "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["kane50613/takumi"], "name": "kane50613/takumi", "platform": ["cloud", "browser", "rust", "wasm", "serverless", "cross-platform"], "pushed_at": "2026-08-26T19:33:04+00:00", "repo": "kane50613/takumi", "stars": 2886, "tags": ["og-image", "social-cards", "jsx", "html-to-image", "html-to-pdf", "satori-alternative", "puppeteer-alternative", "headless-browser-free", "cloudflare-workers", "svg", "gif", "animation", "nodejs"], "topics": ["satori", "jsx", "og-image", "cloudflare-workers", "gif", "html-to-image", "image-generation", "opengraph", "rust", "wasm", "pdf", "pdf-generation", "html-to-pdf", "invoice", "svg", "opengraph-images", "pdf-generator", "puppeteer-alternative", "social-cards"], "urls": [], "use_cases": ["generate Open Graph images for blog posts and social media cards", "render social preview images in Next.js as a drop-in replacement for next/og", "generate invoices and paged PDF documents from JSX templates", "render animated WebP or GIF banners from CSS keyframes", "generate OG images on Cloudflare Workers or edge runtimes without Chromium", "convert HTML and CSS layouts to images without a headless browser", "produce SVG and raster outputs from a single component tree"], "what_it_is": "Takumi is a Rust-based rendering engine that converts JSX, HTML, and CSS into images (PNG, JPEG, WebP, SVG, animated GIF/WebP) and paged PDFs without a headless browser. It ships as native Rust bindings for Node.js and WebAssembly for edge runtimes like Cloudflare Workers, Vercel Edge, Deno, and browsers.", "when_to_avoid": ["you need pixel-perfect rendering of complex real-world web pages with full browser fidelity", "you rely on browser-specific features like JavaScript execution inside the rendered page or full iframe support", "you need to screenshot existing live websites rather than render your own markup"], "when_to_choose": ["you need OG images or social cards on serverless/edge platforms where headless Chromium is too heavy or unavailable", "you want fast, low-memory image or PDF generation from JSX/HTML/CSS without launching a browser", "you need animated image outputs (GIF, WebP, APNG) rendered from CSS animations", "you want a satori or puppeteer alternative with a compatible ImageResponse-style API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/takumi", "repo": "kane50613/takumi", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "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:07:28.144959+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.144959+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:48:18.381891+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fed193f78262f2e39d294d70df3817d129674c3ef3876d73609cde4dbf2f4206", "fetched_at": "2026-08-28T04:07:28.144959+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kane50613/takumi"}, {"content_hash": "4030c852777fad734e6824a88e77779cbd1729107f0bb655059b5dd840a20cf0", "fetched_at": "2026-08-29T09:50:40.794894+00:00", "kind": "homepage", "missing": false, "url": "https://takumi.kane.tw"}, {"content_hash": "92070d06c56db69d7adaa8683e2c8a3f0fa47f5024bd3b0dcb9ea9d7b318932c", "fetched_at": "2026-08-29T09:50:40.803948+00:00", "kind": "site_page", "missing": false, "url": "https://takumi.kane.tw/docs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 32, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 458, "days_push": 7, "days_rel": 10, "gap_med": 0, "n_releases_24m": 1302}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}