{"adoption": {"forks": 389, "observed_at": "2026-08-28T04:10:41.378637+00:00", "stars": 10265}, "canonical_url": "https://ross.abutalabs.com/products/critical", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Extract & Inline Critical-path CSS in HTML pages", "domain": ["web-development", "frontend", "performance", "web-design"], "enriched": true, "function": ["css-framework", "build-tool", "cli", "developer-tools"], "health_score": 96, "homepage": null, "language": "JavaScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["addyosmani/critical"], "name": "addyosmani/critical", "platform": ["cli"], "pushed_at": "2026-08-03T08:22:27+00:00", "repo": "addyosmani/critical", "stars": 10265, "tags": ["critical-css", "above-the-fold", "render-blocking", "web-performance", "lcp-optimization", "css-inlining", "mcp-server", "nodejs", "web-server"], "topics": ["css", "critical-css", "critical-path-css", "critical-path-styles", "inline-css", "inline-styles"], "urls": [], "use_cases": ["extract critical css from html", "inline above-the-fold css to improve first paint", "remove render-blocking stylesheets", "improve largest contentful paint score", "optimize css for static site builds", "defer non-critical css loading", "generate critical css in ci pipeline"], "what_it_is": "A Node.js tool that extracts above-the-fold (critical-path) CSS from HTML pages, inlines it into the document head, and asynchronously loads the remaining stylesheets to eliminate render-blocking CSS. It offers both a CLI and a JavaScript API, with two extraction engines (DOM-based and browser-rendered) and an MCP server for coding agents.", "when_to_avoid": ["your pages have no external stylesheets or already inline all CSS", "you need full CSS optimization like minification or purging unused styles across the whole page", "you cannot run Node.js in your build environment"], "when_to_choose": ["you need faster first paint and better LCP on static sites, MPAs, or SPAs", "you want deterministic output safe for CI and version control diffs", "you need a tool that works under strict Content Security Policy without inline scripts", "you want both a CLI for build pipelines and an API for programmatic use"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/critical", "repo": "addyosmani/critical", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "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:41.378637+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:41.378637+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:19:22.822706+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b74f073f13456f71f02a61ad577fa75ffe8405953a2843bbf5b2c24ecc632916", "fetched_at": "2026-08-28T04:10:41.378637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/addyosmani/critical"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 95, "longevity": 100, "rhythm": 52}, "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": 4449, "days_push": 30, "days_rel": 108, "gap_med": 600, "n_releases_24m": 2}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}