{"adoption": {"forks": 2643, "observed_at": "2026-08-28T04:10:37.481301+00:00", "stars": 9850}, "canonical_url": "https://ross.abutalabs.com/products/art-template", "card": {"archived": false, "artifact_type": "library", "description": "High performance JavaScript templating engine", "domain": ["web-development", "frontend", "backend"], "enriched": true, "function": ["templating", "web-framework"], "health_score": 75, "homepage": "https://goofychris.github.io/art-template/", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["goofychris/art-template"], "name": "goofychris/art-template", "platform": ["browser"], "pushed_at": "2026-07-13T02:00:06+00:00", "repo": "goofychris/art-template", "stars": 9850, "tags": ["template-engine", "express", "koa", "webpack-loader", "server-side-rendering", "no-longer-maintained", "nodejs", "javascript"], "topics": ["template-engine", "javascript", "nodejs", "koa", "express", "webpack"], "urls": [], "use_cases": ["render html templates in an express app", "fast server-side templating in nodejs", "compile templates with webpack", "lightweight client-side template engine for the browser", "template inheritance and partials in javascript"], "what_it_is": "art-template is a high-performance JavaScript templating engine for Node.js and the browser, using scope pre-declaration to achieve near-limit rendering speed. It integrates with Express, Koa, and Webpack, supports template inheritance, and offers friendly debugging with line-accurate error reporting.", "when_to_avoid": ["starting a new project - it is officially unmaintained since July 2026 with no security patches", "production systems requiring ongoing bug fixes or security updates"], "when_to_choose": ["you maintain a legacy project already using art-template", "you need a tiny 6KB browser template engine and accept unmaintained status"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/art-template", "repo": "goofychris/art-template", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "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:10:37.481301+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:37.481301+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:20:54.012270+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fae3ddf46b0da4e97929cccae66ab7586b225b594895c29a07fa8ef1a899f357", "fetched_at": "2026-08-28T04:10:37.481301+00:00", "kind": "readme", "missing": false, "url": "https://github.com/goofychris/art-template"}, {"content_hash": "00a6889fe76b3fdb9154f624e2937fb06cc8c4cd818215cb5b224928eb6f7cda", "fetched_at": "2026-08-29T08:20:38.422076+00:00", "kind": "homepage", "missing": false, "url": "https://goofychris.github.io/art-template/"}, {"content_hash": "529c1f01eee2b040fd6989d025989d589750a3a0d4c9e8305e8fff00d6760ccb", "fetched_at": "2026-08-29T08:20:38.431184+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/art-template"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5204, "days_push": 52, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}