{"adoption": {"forks": 715, "observed_at": "2026-08-28T04:11:20.811319+00:00", "stars": 17998}, "canonical_url": "https://ross.abutalabs.com/products/clay", "card": {"archived": false, "artifact_type": "library", "description": "High performance UI layout library in C.", "domain": ["graphics", "web-development", "cross-platform"], "enriched": true, "function": ["ui-components", "graphics"], "health_score": 83, "homepage": "https://nicbarker.com/clay", "language": "C", "license": "Zlib", "license_family": "permissive", "maturity": "active", "member_repos": ["nicbarker/clay"], "name": "nicbarker/clay", "platform": ["cpp", "c", "wasm", "cross-platform", "browser"], "pushed_at": "2026-05-20T02:17:59+00:00", "repo": "nicbarker/clay", "stars": 17998, "tags": ["flexbox-layout", "single-header", "zero-dependencies", "renderer-agnostic", "declarative-ui", "immediate-mode-adjacent", "game-ui", "layout", "game-development", "desktop"], "topics": ["layout", "ui"], "urls": [], "use_cases": ["build game UI layouts in C or C++", "create responsive flexbox-style layouts without a browser engine", "compile a UI layout engine to wasm for the browser", "lay out native desktop application interfaces", "avoid malloc and heap allocation in embedded UI code", "render UI with any custom renderer or 3D engine"], "what_it_is": "Clay is a high-performance 2D UI layout library in C, distributed as a single zero-dependency header file. It provides a flex-box-like declarative layout model that outputs renderer-agnostic rendering primitives, with support for compiling to WebAssembly for browser use.", "when_to_avoid": ["you need a full widget toolkit with built-in controls, theming, or input handling", "you want immediate-mode GUI rather than retained declarative layout", "your project is not in C/C++ or a language with C FFI", "you need accessibility features or native platform widgets"], "when_to_choose": ["you need microsecond-level layout performance in C/C++", "you want a single-header, zero-dependency layout solution", "you're building UI for games or custom renderers and need renderer-agnostic primitives", "you need wasm support with a tiny binary footprint"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/clay", "repo": "nicbarker/clay", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "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:11:20.811319+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.811319+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:02:11.533720+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c9a8a3f2e38f407fb08b61edb74304461aa2b8e70cc4b232156c6fa5588951ee", "fetched_at": "2026-08-28T04:11:20.811319+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nicbarker/clay"}, {"content_hash": "cbb8d0a2b258e16d5e7157834185a1a6bd03cc938df53fd62c77186bc72e76ee", "fetched_at": "2026-08-29T08:00:17.083000+00:00", "kind": "homepage", "missing": false, "url": "https://nicbarker.com/clay"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 83, "longevity": 55, "rhythm": 16}, "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": 774, "days_push": 106, "days_rel": 454, "gap_med": 112, "n_releases_24m": 4}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}