{"adoption": {"forks": 343, "observed_at": "2026-08-28T04:08:05.855080+00:00", "stars": 3467}, "canonical_url": "https://ross.abutalabs.com/products/consolidatejs", "card": {"archived": false, "artifact_type": "library", "description": "Template engine consolidation library for node.js", "domain": ["web-development", "frontend", "developer-tools"], "enriched": true, "function": ["templating", "middleware"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["tj/consolidate.js"], "name": "tj/consolidate.js", "platform": [], "pushed_at": "2024-12-21T08:02:38+00:00", "repo": "tj/consolidate.js", "stars": 3467, "tags": ["template-engines", "express", "view-engine", "abstraction-layer", "nodejs"], "topics": [], "urls": [], "use_cases": ["render templates in express with multiple template engines", "swap template engines without changing app code", "unified api for ejs handlebars pug mustache", "use handlebars as express view engine", "normalize template engine apis in node.js"], "what_it_is": "Consolidate.js is a Node.js library that provides a unified API over dozens of JavaScript template engines (EJS, Handlebars, Pug, Mustache, etc.). It is commonly used as the view-engine integration layer for Express 3.x/4.x applications.", "when_to_avoid": ["you only use a single template engine and can call it directly", "you need a modern actively developed templating solution", "you rely on engines that are unmaintained or have known security issues"], "when_to_choose": ["you use Express and want to configure or switch view engines easily", "you need one consistent render API across many template engines", "you are building a framework that should support arbitrary template engines"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/consolidatejs", "repo": "tj/consolidate.js", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "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:05.855080+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.855080+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:36:46.572712+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "95a35cba88c12a9139653644c3aabfaace29e0f591a46703df65c159ae6545bb", "fetched_at": "2026-08-28T04:08:05.855080+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/consolidate.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5387, "days_push": 620, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}