{"adoption": {"forks": 189, "observed_at": "2026-08-28T04:08:47.008054+00:00", "stars": 4384}, "canonical_url": "https://ross.abutalabs.com/products/leafer-ui", "card": {"archived": false, "artifact_type": "library", "description": "好用的 Canvas 引擎，轻松实现图形交互与编辑，AI 时代的无限画布引擎。An easy-to-use Canvas engine for effortless graphic interaction and editing — an infinite canvas engine for the AI era. ", "domain": ["web-development", "frontend", "graphics", "data-visualization", "artificial-intelligence"], "enriched": true, "function": ["graphics", "ui-components", "animation", "image-processing", "gui"], "health_score": 100, "homepage": "https://www.leaferjs.com", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["leaferjs/leafer-ui"], "name": "leaferjs/leafer-ui", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-24T02:22:04+00:00", "repo": "leaferjs/leafer-ui", "stars": 4384, "tags": ["canvas", "2d-graphics", "infinite-canvas", "scene-graph", "vector-graphics", "graphic-editor", "whiteboard", "design-tools", "flex-layout", "zero-dependency", "figma-like", "ai-canvas", "game-development", "nodejs", "web", "wechat", "javascript", "typescript"], "topics": ["leaferjs", "canvas", "leafer", "infinite-canvas"], "urls": [], "use_cases": ["build a Figma-like online design editor", "create an AI infinite canvas for generative content", "build an electronic whiteboard or whiteboard app", "render large-scale industrial diagrams and topology visualizations", "batch-generate images, posters, or short video frames on the server", "build lightweight interactive games and H5 interactive pages", "build a low-code visual editor engine"], "what_it_is": "LeaferJS (leafer-ui) is a lightweight, zero-dependency TypeScript Canvas engine for building interactive 2D graphics, with a DOM-like API, built-in editor plugin, Flex layout, and animation support. It is designed as an 'infinite canvas engine for the AI era', capable of rendering and interacting with a million graphics at 60 FPS, and runs on Web, Node.js, Web Workers, and WeChat mini-programs.", "when_to_avoid": ["you need 3D rendering or WebGL/WebGPU features today", "you need full WeChat mini-program SVG or shadow support, which is still being adapted", "you need IE support", "you want a mature ecosystem like PixiJS or Konva with a large plugin community"], "when_to_choose": ["you need to render and interact with tens of thousands to millions of graphics smoothly in the browser", "you want a lightweight (~70KB), zero-dependency canvas library with a DOM-like API", "you need built-in graphic editing (select, move, resize, rotate, multi-select) for a design tool", "you want one codebase running on web, Node.js, workers, and WeChat mini-programs", "you want AI to programmatically manipulate a structured scene tree of graphics"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/leafer-ui", "repo": "leaferjs/leafer-ui", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "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:47.008054+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:47.008054+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:16.291596+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "022602bd6169cfd63cb1d53b7adacab73ce789d293a70dd1e8bc7d5e24fb3e51", "fetched_at": "2026-08-28T04:08:47.008054+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leaferjs/leafer-ui"}, {"content_hash": "9e8849ffa518b79801a437fd0a006764d706754db18c7c8476a635398c4f4ae7", "fetched_at": "2026-08-29T09:10:01.397117+00:00", "kind": "homepage", "missing": false, "url": "https://www.leaferjs.com"}, {"content_hash": "830852ba86eb159df7b2ba75e9514ef3fe7a068147ed03b27fb1a64ced563e9f", "fetched_at": "2026-08-29T09:10:01.406966+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/miniapp/start.html"}, {"content_hash": "8a7c92656b232cb3d12a389864bea4e0421a362340169760f7962987dcb95ced", "fetched_at": "2026-08-29T09:10:01.408886+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/start.html"}, {"content_hash": "91a113188a7c6970c9355ee9ba31375d8865504c852482f4fbeae53ff65f737d", "fetched_at": "2026-08-29T09:10:01.410688+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/worker/start.html"}, {"content_hash": "3e70b5f9aa2d538d35215ec54497bcf09fcc18b1af312a9c87270f70567f7f63", "fetched_at": "2026-08-29T09:10:01.412199+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/node/start.html"}, {"content_hash": "93424d4c0ed9399d49bd99a7f0cbf653b144e37ea454a55ea7d56a0024388713", "fetched_at": "2026-08-29T09:10:01.413855+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install"}, {"content_hash": "5138060eab1e41b4272e71307875284878ab90e7688ec1eee952b3af06030a44", "fetched_at": "2026-08-29T09:10:01.415551+00:00", "kind": "site_page", "missing": false, "url": "https://www.leaferjs.com/ui/guide/install/ui/core"}, {"content_hash": "61d1dfebdfb0cffb56ebec37e32b15c6e9ec53950f030eccbb810f9c9c98b75f", "fetched_at": "2026-08-29T09:10:01.417203+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/leafer-ui"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 91, "rhythm": 84}, "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": 1277, "days_push": 10, "days_rel": 31, "gap_med": 6, "n_releases_24m": 78}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}