{"adoption": {"forks": 195, "observed_at": "2026-08-28T04:08:34.451955+00:00", "stars": 4082}, "canonical_url": "https://ross.abutalabs.com/products/tinyconstraints", "card": {"archived": false, "artifact_type": "library", "description": "Nothing but sugar.", "domain": ["mobile-development", "developer-tools"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["roberthein/TinyConstraints"], "name": "roberthein/TinyConstraints", "platform": [], "pushed_at": "2024-04-16T15:06:27+00:00", "repo": "roberthein/TinyConstraints", "stars": 4082, "tags": ["auto-layout", "nslayoutconstraint", "syntactic-sugar", "uikit", "constraints", "ios", "swift", "mobile"], "topics": ["auto", "layout", "swift", "constraints", "nslayoutconstraints", "nslayoutconstraint", "animation", "superview", "center", "sugar", "stack", "swift4", "arkit", "constraint", "sweet", "syntactic", "library", "libraries", "swift5", "swift-5"], "urls": [], "use_cases": ["pin a view to its superview edges with one line of code", "center a view in its superview without verbose anchor code", "stack views together with minimal constraint code", "set constraint priorities and relations concisely", "replace verbose NSLayoutConstraint boilerplate in UIKit apps", "create and store inactive constraints for later activation"], "what_it_is": "TinyConstraints is a Swift library that provides syntactic sugar over NSLayoutConstraint to make Auto Layout code shorter and more readable. It offers one-line helpers like edgesToSuperview() and center(in:) while remaining fully compatible with standard Auto Layout code.", "when_to_avoid": ["you use SwiftUI instead of UIKit Auto Layout", "you prefer explicit NSLayoutConstraint or third-party frameworks like SnapKit with larger ecosystems", "you need a library under very active development, as updates are infrequent"], "when_to_choose": ["you build UIKit iOS apps and want concise, readable Auto Layout code", "you want a lightweight drop-in wrapper fully compatible with existing NSLayoutConstraint code", "you frequently constrain views to their superview or stack views together"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tinyconstraints", "repo": "roberthein/TinyConstraints", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "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:34.451955+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.451955+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:25.397998+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "497070b2bb6d1c8e588914dc827867f8bff5036fbe4d7ee9712be240b6284f3f", "fetched_at": "2026-08-28T04:08:34.451955+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roberthein/TinyConstraints"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3496, "days_push": 869, "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}}